ios - iOS崩溃日志不包含行号并且使用反汇编找不到符号
问题描述
我从 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 会议:
https://developer.apple.com/videos/play/wwdc2021-10211
也可能有用。至少他们会给你一些背景信息。
如果 crashlytics 有其他格式的崩溃日志,那么他们大概也会提供一些工具来符号化他们的崩溃日志格式。也许查看他们的支持论坛以获取更多详细信息?
推荐阅读
- r - 循环遍历文件夹中的 tif 文件,但不包括 R 中的 tif.aux 文件
- wpf - TextAnnotation 显示 ibeam 光标,已将 CanEditText 设置为 true,但不允许编辑
- r - 提取r中列表内的一组矩阵的最小矩阵
- excel - 如何在 powerpoint 中创建动态超链接?
- tensorflow - Tensorflow 数据集 API:将 tf.data.Dataset.from_generator 与 parallel_interleave 并行化
- python - 嵌入字符串中的模糊匹配字符串
- angularjs - 如何在 AngularJS 的选择框中使用复选框来选择多个值?
- html - 内部带有图像的 w3-cell 元素不会调整到相等的高度
- c - 用结构和txt文件在C中读取函数
- google-cloud-platform - 如何在 Google Cloud Composer 中创建有效的 JDBC 连接?