iOS 崩溃日志不包含行号并且无法使用反汇编找到符号
iOS crash log does not contain line number and can not find symbol using disassemble
我从 Crashlytics 获得了一些崩溃日志。喜欢
App -[Socket init:queue:] + 508
App -[SocketK recv:error:] + 5508
App xxx_accept + 5296
App xx_accept + 1680
App xx_input + 48
我从How can I find the address of a stack trace in LLDB for iOS中找到了得到真实位置的解决方案。
当我使用 disassemble --name
查找符号时,它可能有效也可能无效。例如,我可以找到 xxx_accept
但找不到 -[Socket init:queue:]
.
那么为什么它不起作用?以及如何获取崩溃位置?
谢谢。
崩溃日志文件必须存储崩溃时加载的二进制文件列表及其加载地址。 “符号化”崩溃日志的过程涉及查找应用程序的调试信息 (dSYM),并为它们分配适当的地址以形成崩溃状态的重建,然后查询此重建以获取地址->符号名称翻译。
我对 crashlytics 不是很熟悉,但如果他们使用标准的 Apple 格式作为崩溃日志,那么参考资料可能会有所帮助:
https://developer.apple.com/documentation/xcode/adding-identifiable-symbol-names-to-a-crash-report
和这个 WWDC session:
https://developer.apple.com/videos/play/wwdc2021-10211
也可能有用。至少他们会给你一些背景信息。
如果 crashlytics 有一些其他格式的崩溃日志,那么大概他们也会提供一些工具来表示他们的崩溃日志格式。也许查看他们的支持论坛了解更多详情?
我从 Crashlytics 获得了一些崩溃日志。喜欢
App -[Socket init:queue:] + 508
App -[SocketK recv:error:] + 5508
App xxx_accept + 5296
App xx_accept + 1680
App xx_input + 48
我从How can I find the address of a stack trace in LLDB for iOS中找到了得到真实位置的解决方案。
当我使用 disassemble --name
查找符号时,它可能有效也可能无效。例如,我可以找到 xxx_accept
但找不到 -[Socket init:queue:]
.
那么为什么它不起作用?以及如何获取崩溃位置?
谢谢。
崩溃日志文件必须存储崩溃时加载的二进制文件列表及其加载地址。 “符号化”崩溃日志的过程涉及查找应用程序的调试信息 (dSYM),并为它们分配适当的地址以形成崩溃状态的重建,然后查询此重建以获取地址->符号名称翻译。
我对 crashlytics 不是很熟悉,但如果他们使用标准的 Apple 格式作为崩溃日志,那么参考资料可能会有所帮助:
https://developer.apple.com/documentation/xcode/adding-identifiable-symbol-names-to-a-crash-report
和这个 WWDC session:
https://developer.apple.com/videos/play/wwdc2021-10211
也可能有用。至少他们会给你一些背景信息。
如果 crashlytics 有一些其他格式的崩溃日志,那么大概他们也会提供一些工具来表示他们的崩溃日志格式。也许查看他们的支持论坛了解更多详情?