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