繁体   English   中英

如何表示用户通过电子邮件发送给我的Mac OS X应用程序的崩溃报告?

[英]How do I symbolicate a crash report of a Mac OS X app that a user emailed to me?

我正在开发一个应用程序,我已经发送给一些beta测试人员。 在启动应用程序的短短几分钟内,用户就崩溃了。 当窗口加速说应用程序崩溃时,他复制了详细信息部分中的所有文本并通过电子邮件发送给我。 我已将文本保存为纯文本文件,并为其指定了.crash扩展名,这使得它可以像常规崩溃报告一样通过控制台打开,所以我认为我的扩展名是正确的(但可能没有)。 我发出的版本是由Xcode和Archive选项构建的,因此Xcode知道app和.dSYM的位置。 我知道使用iPhone应用程序,您可以将崩溃报告拖到组织者,Xcode将为您进行符号化。 我无法找到任何需要Mac崩溃报告的地方。 我看过atos但是它讨论了内存位置,包括应用程序运行的位置,我没有看到报告中列出的信息。 看一下原始崩溃报告,它看起来像是一个早期发布的视图控制器,但我无法确定这是原因还是症状。 我真正的问题是; 有没有办法让Xcode符号化报告或工具,我可以直接移交.dSYM文件,应用程序和报告并获取符号化报告? 我看过谷歌,但我发现的一切(除了前面提到的atos手册页)都是关于iPhone报告的象征,而不是Mac OS X的报告。

或者如回答https://stackoverflow.com/a/18354072/317461

将您的发布版本和.dSYM文件放在同一目录中并打开终端

$cd directory
$lldb MyApp.app
(lldb) image lookup -v --address 0x00085f3c

我们的应用程序遇到了同样的问题,我用atos逐行手动表示崩溃报告。

我现在调整了Apple的符号脚本,以便它适用于Mac应用程序和PLCrashReporter的崩溃报告。

https://github.com/lksnmnn/Symbolicate-CrashReports

如何使用它:

确保您的计算机上包含以下所有文件:

  1. 崩溃报告: report.crash
  2. 您应用的dSYM文件: MyApp.dSYM
  3. 您应用的可执行文件/应用文件夹: MyApp.app
  4. 改进的符号脚本: symbolicatecrash

现在进入命令行(终端)并执行以下操作:

# set the developer directory
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

# Now run the script
/Path/To/symbolicatecrash /Path/To/report.crash > /Path/To/readable_report.crash

# Use -v for verbose logging.

该脚本将尽可能多地找到您的dSYM和您的可执行文件和符号。 现在,您将在声明的输出文件readable_report.crash中找到符号化报告

构建设置:

要获得正确的报告和符号,请将构建设置设置为:

Strip Debug Symbols During Copy: Yes
Strip Style: All Symbols
Strip Linked Product: Yes

编辑:改进了答案,使其与Stack Overflow应答策略保持一致。

您可以使用GDB进行符号化,将发布版本和.dSYM文件放在同一目录的开放终端中

$ cd directory
$ gdb MyApp.app
(gdb) info line *0x00085f3c  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM