对于 iOS 崩溃报告,只需将崩溃报告拖放到 Organizer 即可。
但此方法不适用于 Mac OSX 崩溃报告。
如何符号化我的 Mac OSX 崩溃报告?
谢谢 !!
对于 iOS 崩溃报告,只需将崩溃报告拖放到 Organizer 即可。
但此方法不适用于 Mac OSX 崩溃报告。
如何符号化我的 Mac OSX 崩溃报告?
谢谢 !!
您可以使用 atos 命令获取应用程序崩溃的行号。
这是一个快速指南:
获得所有信息后,您需要在终端中运行以下命令:
atos -o YourApp.app/Contents/MacOS/YourApp -arch x86_64 -l [加载地址] [地址]
例如,以下是堆栈跟踪的摘录:
Process: MyApp [228]
Path: /Applications/MyApp.app/Contents/MacOS/MyApp
Identifier: uk.co.company.app
Version: 1.0 (1)
App Item ID: 774943227
App External ID: 218062633
Code Type: X86-64 (Native)
Parent Process: launchd [154]
Responsible: MyApp [228]
User ID: 501
Date/Time: 2013-12-17 10:20:45.816 +0100
OS Version: Mac OS X 10.9 (13A603)
Report Version: 11
Anonymous UUID: 7AA662B1-7696-A2C5-AF56-9D4BA2CE9515
Crashed Thread: 2
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
<snip>
Thread 2 Crashed:
0 libsystem_kernel.dylib 0x00007fff8b95a866 __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff8bf4f35c pthread_kill + 92
2 libsystem_c.dylib 0x00007fff87571bba abort + 125
3 libsystem_malloc.dylib 0x00007fff897ae093 free + 411
4 uk.co.company.app 0x0000000103580606 0x10356e000 + 75270
5 uk.co.company.app 0x00000001035803da 0x10356e000 + 74714
6 com.apple.Foundation 0x00007fff8d00970b __NSThread__main__ + 1318
7 libsystem_pthread.dylib 0x00007fff8bf4e899 _pthread_body + 138
8 libsystem_pthread.dylib 0x00007fff8bf4e72a _pthread_start + 137
9 libsystem_pthread.dylib 0x00007fff8bf52fc9 thread_start + 13
我可以看到“代码类型”是 x86_64,线程 2 崩溃了,并且在第 4 行我的代码正在运行,所以我们有我们需要的地址。使用此信息,我运行以下命令:
$ atos -o MyApp.app/Contents/MacOS/MyApp -arch x86_64 -l 0x10356e000 0x0000000103580606
这将返回:
got symbolicator for MyApp.app/Contents/MacOS/MyApp, base address 100000000
obj_free (in MyApp) (somefile.c:135)
告诉我我的应用程序在 somefile.c 的第 135 行崩溃了
@inkjet 上面的评论值得自己回答。他构建了一个应用程序,可以根据您的 dsym 和 .crash 文件执行完整的符号化。
我制作的 Sumbolon 的免费替代品:bch.us.to/apps/macsymbolicator — 它使用 atos 的方式与下面 Rich Able 描述的方式相同。– 2013 年 12 月 24 日 4:39
把它们放在一起:
从这里下载 Mac Symbolicator
打开 Xcode,选择 Window->Organizer,转到 Archive 选项卡并找到您的应用程序遇到崩溃的版本。
右键单击应用存档并选择“在 Finder 中显示”
右键单击 .xarchive,选择“显示内容”并找到 AppName.dSYM 目录
将您的 .crash 文件和 AppName.dsym 拖到 Sumbolon
魔术发生
这个链接解释了所有用 crash 行来表示崩溃日志的东西。您只需要将 .dsyms 文件、.app 文件和崩溃日志放在同一个文件夹中
我环顾四周,发现没有比这更好的了。所以我发布它希望这对其他人有帮助。