使用 symbolicatecrash 解析崩溃堆栈

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

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.

posted on 2015-06-11 17:53  封起De日子  阅读(419)  评论(0编辑  收藏  举报

导航