ios Crash Log 分析彙總

方法一:


1.xcode 有自帶的symbolicatecrash,可以將.crash文件中的16進制地址轉換成可讀的函數地址。

symbolicatecrash位於:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash(Xcode 4.5)

可以將symbolicatecrash拷貝到便於操作的目錄。

如:將其拷貝到Desktop/iphonedug文件夾中。


2.每一次Build之後會有相應的xxx.app, xxx.app.dSYM文件,.dSYM文件是將Build之後的文件16進制地址對應的函數地址儲存起來之後的文件。

每一個xx.app, xxx.app.dSYM文件都擁有相應的uuid,crash文件也有uuid,只有三者uuid一至才表明之三者可以解析出正確的日誌文件。

查看xx.app文件的uuid的方法,在terminal中輸入命令:dwarfdump --uuid xxx.app/xxx (xxx工程名)

查看xx.app.dSYM文件的uuid的方法,在terminal中輸入命令:dwarfdump --uuid xxx.app.dSYM (xxx工程名)

而.crash的uuid位於,crash日誌中的Binary Images:中的第一行。如:armv7s  <13760bde0d073f1eb4d596c3df753f4b>

將對應的xx.app, xx.app.dSYM文件也拷貝到Desktop/iphonedug文件夾中


3.使用symbolicatecrash解析.crash日誌。

在terminal中輸入命令:./symbolicatecrash xxx.crash xxx.app.dSYM > test.log

這樣可以將.crash日誌轉換成test.log,test.log即可讀的函數文件。

輸入上述命令可能會出現Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 53.這個錯誤。

如果出現上述錯誤,輸入命令:export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer,

然後繼續執行./symbolicatecrash xxx.crash xxx.app.dSYM > test.log可以成功


方法二:

使用命令:atos -o xxx.app/xxx -arch armv7 0x38ad42f9 0x38ad42f9 0x38ad42f9(多個16進制地址,使用空格分開)

注意.app, .app.dSYM需要跟日誌程序版本build一致



==================  處理crash ===========================

1. /usr/bin/xcode-select -print-path

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

3. find /Applications/Xcode.app -name symbolicatecrash -type f

4. cd /Applications/Xcode4.6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources 

5 ./symbolicatecrash -o ~/desktop/Dingtone_crashlog.crash ~/desktop/*.crash /project/dingtone/branches/Clientv1_0/IOS_Client/dSYM/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章