iOS-利用DSYM解析Crash文件

本文介绍了利用DSYM解析Crash文件的流程。

不是处于调试模式下,程序发生的Crash文件,不会直接暴露程序的具体函数和代码行,如下:

1
2
7   CarLife                       	0x0000000100569e4c 0x100040000 + 5414476
8 libdyld.dylib 0x000000018205e8b8 start + 4

要解析该文件,按步骤:

配置DEVELOPER_DIR

先打开隐藏文件,参考MAC-显示隐藏文件,然后:

1
cd ~

到该目录下,打开文件:

1
.bash_profile

添加一行:

1
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
找到Symbolicatecrash程序

路径:

1
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
解析

crash文件,app文件以及dysm文件放在同一个目录下,cd到该目录下,执行:

1
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash CarLife.crash Baidu CarLife.app >crash.crash

会在该目录下,生成一个新的crash.crash文件,里面就解析出来了具体函数和代码行:

1
2
7   CarLife                       	0x0000000100569e4c main (main.m:170)
8 libdyld.dylib 0x000000018205e8b8 start + 4