加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux上的Swift调试 – 缺少Backtrace

发布时间:2020-12-14 01:07:17 所属栏目:Linux 来源:网络整理
导读:我有一个崩溃,我试图找到,甚至构建应用程序作为调试和执行它我似乎没有得到任何符号信息. 我在控制台收到的输出是: fatal error: unexpectedly found nil while unwrapping an Optional valueCurrent stack trace:0 libswiftCore.so 0x00007f1c51ca51c0 swi
我有一个崩溃,我试图找到,甚至构建应用程序作为调试和执行它我似乎没有得到任何符号信息.

我在控制台收到的输出是:

fatal error: unexpectedly found nil while unwrapping an Optional value
Current stack trace:
0    libswiftCore.so                    0x00007f1c51ca51c0 swift_reportError + 120
1    libswiftCore.so                    0x00007f1c51cbfbe0 _swift_stdlib_reportFatalError + 62
2    libswiftCore.so                    0x00007f1c51ab9be6 <unavailable> + 1186790
3    libswiftCore.so                    0x00007f1c51c18ead <unavailable> + 2625197
4    libswiftCore.so                    0x00007f1c51ab9be6 <unavailable> + 1186790
5    libswiftCore.so                    0x00007f1c51bd4060 specialized _fatalErrorMessage(StaticString,StaticString,file : StaticString,line : UInt,flags : UInt32) -> Never + 96
6    myProgram                          0x000000000045909e <unavailable> + 364702
7    myProgram                          0x0000000000423f37 <unavailable> + 147255
8    libdispatch.so                     0x00007f1c5276e177 <unavailable> + 278903
9    libdispatch.so                     0x00007f1c52779edd <unavailable> + 327389
10   libdispatch.so                     0x00007f1c5277a890 <unavailable> + 329872
11   libdispatch.so                     0x00007f1c5277c5f4 <unavailable> + 337396
12   libdispatch.so                     0x00007f1c5279aa18 <unavailable> + 461336
13   libpthread.so.0                    0x00007f1c50c6f6ba <unavailable> + 30394
14   libc.so.6                          0x00007f1c4f7b9370 clone + 109
Illegal instruction (core dumped)

我根本找不到任何方法来扩展这些信息,虽然我可以去浏览一个地图文件.我觉得现在使用现代工具我们已经超越了这个领域.

有没有人有任何指针,或者确实知道如何生成包含更多信息的构建.

Ubuntu 16.04,Swift 3.1.1

解决方法

所以,遗憾的是,这似乎是lldb中的一个错误,它在ELF可执行文件中使用了本地符号,而dladdr在linux平台上找不到它们.

请在此处查看错误报告:
https://bugs.swift.org/browse/SR-755

注意:

好消息,有一个bash脚本可以为你完成所有工作.指令很轻微,但这是你需要做的:

下载此脚本:
https://raw.githubusercontent.com/apple/swift/master/utils/symbolicate-linux-fatal

Exectute你崩溃的应用程序.

$myApp &> crash.log

然后执行脚本.

$./symbolicate-linux-fatal myApp crash.log

它帮助我永无止境.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读