本文介绍了利用DSYM解析Crash文件的流程。
不是处于调试模式下,程序发生的Crash文件,不会直接暴露程序的具体函数和代码行,如下:
1 | 7 CarLife 0x0000000100569e4c 0x100040000 + 5414476 |
要解析该文件,按步骤:
配置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 | 7 CarLife 0x0000000100569e4c main (main.m:170) |