如何为 OS X 应用程序符号化 PLCrashReports

Posted

技术标签:

【中文标题】如何为 OS X 应用程序符号化 PLCrashReports【英文标题】:How to symbolicate PLCrashReports for OS X Apps 【发布时间】:2012-05-01 22:34:06 【问题描述】:

我已将 PLCrashReporter 添加到我的 OS X 应用程序,并成功地将故障转储保存到服务器。但是,即使 .app 和 .dSYM 与 plcrashutil 和崩溃文件位于同一目录中,plcrashutil 似乎也没有符号化。

我还尝试按照 TN 2123 中的说明使用 gdb 获取地址,但它无法为崩溃文件中报告的符号提供源代码行。

【问题讨论】:

【参考方案1】:

plcrashutil 没有符号化,它只是以标准格式创建一个崩溃文件。您需要使用 Xcode 中的 symbolicatecrash.pl 来对报告进行符号化。

symbolicatecrash.pl 有一个补丁版本,它修复了一些错误,可在此处获得:https://github.com/TheRealKerni/QuincyKit/tree/develop/server/local

请注意,PLCrashReporter 目前无法在 Intel 64Bit 架构上正常工作!

但 PLCrashReporter 开发人员正在与 HockeyApp 合作开发支持 64 位的新版本。见http://www.mikeash.com/pyblog/friday-qa-2012-04-27-plcrashreporter-and-unwinding-the-stack-with-dwarf.html和http://www.hockeyapp.net/blog/2012/4/27/mac-os-x-sandbox-support-is-coming.html

【讨论】:

根本不工作,或者不能与沙箱一起工作?我已经让它发送报告并且可以解析它们,只是没有符号。 在 64 位上,数据完全是错误的,这不是沙箱特有的!地址错误,您将无法从中获取任何有意义的数据。请参阅链接的文章,这就是为什么目前正在进行额外的开发以使其工作。哦,如果你用 plcrashutil 的输出运行 symbolicatecrash,你就会明白我的意思了。你只是没有得到任何有意义的结果,因为数据是错误的。 感谢@Kerni 的提示。我想我在试图从一些 x86_64 崩溃日志中得到一些有意义的东西后要发疯了。我想知道为什么(过时的)Google Code page 声明对该架构有实验性支持。

以上是关于如何为 OS X 应用程序符号化 PLCrashReports的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Mac OS X 构建 Audacity 应用程序源代码

如何为 Mac OS X 创建苹果邮件插件 [关闭]

如何为 NSButton 的标题设置自定义颜色和字体大小?(在 OS X 而非 iOS 中)[重复]

如何为 Symbian OS V2 开发应用程序?

iPhone OS:如何为特定日期创建 NSDate?

如何为 Watch OS 2 模拟器构建 openssl 库?