使用 symbolicatecrash 解析崩溃堆栈

https://blog.csdn.net/duanyipeng/article/details/46460245

一、先引用一位牛人的博贴:

xcode解crashlog工具symbolicatecrash的使用

在xocde编译app的时候会同时生成一个以dsym(该app对应的符号表)作为后缀的文件,每个app对应一个符号表。手机连接到电脑,用organizer 可以看到Device Logs,将某个crashlog直接拖出来,然后需要通过symbolicatecrash来查看,但是这个工具在xccode4.3的时候改变了存放的位置。

1.给xcode打一个补丁: 命令行运行 /usr/bin/xcode-select -print-path

如果输出”/Developer”或者其他非”/Applications/Xcode.app/Contents/Developer/”的内容,运行下面的命令:

sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/

否则就OK

2.查找symbolicatecrash:find /Applications/Xcode.app -name symbolicatecrash -type f

获取路径,我的是/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Devel-oper/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

3、将symbolicatecrash设置连接,使得在任何位置都可以使用

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Deve-loper/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/sy-mbolicatecrash /usr/bin/symbolicatecrash

4、将**.app.dsym文件(需要找到对应与crash app版本的dsym文件哦) 和 **.crash 文件 放到同一个文件夹中

我的是:XXX.app.dSYM  和 XXX.crash两个文件

在终端中进入到该文件夹,运行 symbolicatecrash XXX.crashXXX.app.dSYM >log.crash  即可解出crash log —log.crash。

如果看到Error: “DEVELOPER_DIR” is not defined at /usr/bin/symbolicatecrash line 53.

那么设置下 export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

4.3之前

1.直接find /Developer -name symbolicatecrash -type f   就可以进行接下来的步骤

其实发现在organizer直接看该crash log 也可以,据说这样会有些地址没解析出来,所以要用symbolicatecrash来解析一遍  不过暂时没发现区别  还真有区别

如果用organizer看不到目录 就用itools 在文件系统里找  需要越狱哦

真机上crash log 其中一个目录

/var/mobile/Library/Logs/CrashReporte
二、接下来进入正题:

验证uuid:

a. Qzone.app/Qzone 的uuid
b. QZone.app.dSYM 的uuid
c. QZone.crash 的uuid

三者一致才能还原符号表。


1. 将 Qzone.app 、QZone.app.dSYM、 QZone.crash放在同一个目录:


2. 核对uuid是否一致:


三者一致。

3. 进行解析:


让解析后重新生成文件: log.crash。

ok ,结束。

4. 还原符号表之前与还原之后的对比:

还原前:

还原后:

over.
 

猜你喜欢

转载自blog.csdn.net/chenyijun/article/details/85092583