微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux上的Swift调试 – 缺少Backtrace

我有一个崩溃,我试图找到,甚至构建应用程序作为调试和执行它我似乎没有得到任何符号信息.

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

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

它帮助我永无止境.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐