1. 程式人生 > >使用 symbolicatecrash 解析崩潰堆疊

使用 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.