如何为 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 应用程序源代码