我从Crashlytics那里得到了一些崩溃日志。像
App -[Socket init:queue:] + 508
App -[SocketK recv:error:] + 5508
App xxx_accept + 5296
App xx_accept + 1680
App xx_input + 48
我从如何找到iOS的LLDB中堆栈跟踪的地址以获得真实位置找到了解决方案。
当我使用disassemble --name
找到符号时,它可能工作,也可能不工作。例如,我可以找到xxx_accept
,但不能找到-[Socket init:queue:]
。
为什么它不起作用呢?如何得到坠毁的位置?
谢谢。
崩溃日志文件必须存储崩溃时加载的二进制文件列表及其加载地址。"符号化"过程崩溃日志包括查找应用程序的调试信息(dSYM),并为它们分配适当的地址以形成崩溃状态的重建,然后查询此重建的地址->符号名称翻译。
我不是很熟悉崩溃分析,但如果他们使用标准的苹果格式的崩溃日志,那么这个参考可能会有所帮助:
https://developer.apple.com/documentation/xcode/adding-identifiable-symbol-names-to-a-crash-report
和本次WWDC会议:
https://developer.apple.com/videos/play/wwdc2021 - 10211
可能也很有用。至少他们会给你一些背景。
如果crashlytics有一些其他的崩溃日志格式,那么他们可能也会提供一些工具来表示他们的崩溃日志格式。也许可以看看他们的支持论坛了解更多细节?