OS X崩溃日志符号



我无法使用XCode 4.6符号化测试人员和用户的OS X(而非iOS)崩溃日志。崩溃日志无法拖到组织者中,组织者不会显示~/Library/logs/DiagnosticReports/中的任何崩溃日志,尽管有些日志在该目录中。

Didier Malenfant评论了以前的线程XCode没有导入操作系统X崩溃日志

底线很简单。截至目前(Xcode 4.6),OS X崩溃日志无法导入到Xcode中。只有iOS版。

这是目前的情况吗?如果没有有效的方法来集成崩溃报告,很难想象组织能够支持新的OSX软件。

如果您有堆栈跟踪;例如:

0   com.your_app        0x00000001016191e0 0x1015fb000 + 123360
1   com.your_app        0x000000010161509d 0x1015fb000 + 106653
2   com.your_app        0x00000001016147b9 0x1015fb000 + 104377
3   com.your_app        0x000000010161df81 0x1015fb000 + 143233`

尝试以下操作:

atos -o YOUR_APP.app.dSYM/Contents/Resources/DWARF/YOUR_APP -l 0x1015fb000 0x00000001016191e0 0x000000010161509d 0x00000001016147b9 0x000000010161df81`

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

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

或者你可以按照特洛伊木马的建议使用atos

$cd directory
$atos -o MyApp.app/Contents/MacOS/MyApp
info 0x00085f3c

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

我们的应用程序也遇到了同样的问题,我正在用atos逐行手动符号化崩溃报告。

我现在调整了苹果的象征性脚本,使其能够与Mac应用程序和PLCrashReporter的崩溃报告配合使用。

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

如何使用:

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

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

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

# 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.class中找到您的符号化报告

构建设置:

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

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

在我有dsym和崩溃报告文件的情况下,我使用了MacSymbolicator和Xsymplicate。他们做这项工作只是为了满足简单的需求,尽管Xcode内置的崩溃报告支持也变得更好了,至少对于在应用商店销售的应用程序来说是这样。

最新更新