iphone - 如何在符号化崩溃报告(iPhone/Mac)中获取正确的行号?

标签 iphone xcode macos crash-reports

当用符号表示崩溃报告时,我注意到行号已关闭。我用一个我故意造成崩溃的项目对此进行了测试。生成的行号似乎不包括某些行,例如注释行或编译器预处理器语句(不确定它的作用和不包括什么)...

是否有一种简单的方法可以从符号崩溃报告中的“关闭”行号获取源代码中的实际代码行?

编辑: 符号化崩溃报告中的一行示例:

7 Luisterpaal 0x00005de2 -[SWFMP3 connection:didReceiveData:] (SWFMP3.m:320)

因此,行号 320 几乎是正确的,但不完全正确。还差几行...

最佳答案

一句话……不。如果您在崩溃报告中看到这样的行:

0 com.apple.CoreFoundation 0x95cb046b CFArrayAppendValue + 43

“+43”不是行号,而是函数开头的内存位置。您编写的代码根本不存在于已编译的二进制文件中 - 编译器会优化并更改代码(至少在发布版本中),因此它通常与您编写的内容不匹配。

不幸的是,解决方案是为遇到崩溃的人提供一个调试版本,您可以远程调试该版本,或者至少抛出 NSLog() 语句来帮助跟踪它,和/或编写较小的方法。

关于iphone - 如何在符号化崩溃报告(iPhone/Mac)中获取正确的行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1287074/

相关文章:

arrays - Swift:音频文件数组

ios - Xcode源码路径

ios - 使用 CloudKit 共享私有(private)数据

ios - 在 iOS 应用程序中包含特殊开发人员/测试功能的正确方法?

iphone - CoreGraphics 线似乎改变了大小?

Swift 属性 - 按操作系统版本弃用

xcode - 如何让 Xcode 不关心从自定义脚本 (/dev/null) 返回的错误?

c# - 使用 Mono 将 C# .NET 应用程序移植到 OS X?

iphone - 当 css 作为本地资源包含在 iPhone 上的 UIWebView 中时,jQuery Mobile Sprite 不显示

ios - 使用或不使用 iTunes 将 .ipa 安装到 iPad