使用 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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |