iOS崩潰日志解析(純手工)

分析iOS Crash文件:符號化iOS Crash文件的3種方法
iOS手動解析Crash_Log崩潰日志符號表
ios 崩潰日志分析 蘋果崩潰日志解讀

1.將/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecras復(fù)制到crash文件夾中,
然后將符號表demo.app.dSYM和崩潰日志.crash(Xcode導(dǎo)出)文件或者.ips(手機分析數(shù)據(jù)中)文件放入crash文件中

2.設(shè)置symbolicatecrash的環(huán)境變量,終端下發(fā)指令:
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

3.符號表,終端下發(fā)指令:
./symbolicatecrash demo.ips demo.app.dSYM > dsym.app.ips
./symbolicatecrash demo.crash demo.app.dSYM > dsym.app.crash

//查看UUID和崩潰日志中里面的是否一致
dwarfdump -uuid demo.app.dSYM

4.解析成原方法:
atos -arch 架構(gòu) -o 符號表 -l 模塊地址 方法地址
或者:
atos -o 符號表 -l 模塊地址 方法地址
模塊地址 = 方法地址-偏移地址(需要10進制轉(zhuǎn)16進制)

案例:
Heaviest stack for the target process:
 87 ??? (libsystem_pthread.dylib + 2952) [0x21b5d5b88]
 87 ??? (libsystem_pthread.dylib + 5816) [0x21b5d66b8]
 76 ??? (Foundation + 374052) [0x1b5ab4524]
 76 ??? (demo + 41192428) [0x1067b8bec]
 76 ??? (CoreFoundation + 521196) [0x1bb81a3ec]
 37 ??? (CoreFoundation + 500304) [0x1bb815250]
 37 ??? (CoreFoundation + 495652) [0x1bb814024]
 37 ??? (libsystem_kernel.dylib + 4584) [0x1fa75b1e8]
 37 ??? (libsystem_kernel.dylib + 81484) [0x1fa76de4c]
 37 ??? (libsystem_kernel.dylib + 3236) [0x1fa75aca4]

解析過程:
 87 ??? (libsystem_pthread.dylib + 2952) [0x21b5d5b88]
10進制偏移地址2952轉(zhuǎn)十六進制0xB88
模塊地址:0x21b5d5b88- 0xB88= 0x21B5D5000
解析:atos -arch arm64e -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x21B5D5000 0x21b5d5b88
或者:
解析:atos -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x21B5D5000 0x21b5d5b88
結(jié)果:解析失敗

 87 ??? (libsystem_pthread.dylib + 5816) [0x21b5d66b8]
10進制偏移地址5816轉(zhuǎn)十六進制0x16B8
模塊地址:0x21b5d66b8- 0x16B8= 0x21B5D5000
解析:atos -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x21B5D5000 0x21b5d66b8
結(jié)果:解析失敗

 76 ??? (Foundation + 374052) [0x1b5ab4524]
模塊地址:0x1b5ab4524 - 0x5B524 = 0x1B5A59000
解析:atos -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x1B5A59000 0x1b5ab4524
結(jié)果:-[HPGrowingTextView initWithCoder:] (in demo) (HPGrowingTextView.m:156)

 76 ??? (bizElife + 41192428) [0x1067b8bec]
模塊地址:0x1067b8bec- 0x2748BEC= 0x104070000
解析:atos -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x104070000 0x1067b8bec
結(jié)果:-[RCTBaseTextInputView setCustomInputAccessoryViewWithNativeID:] (in demo) (RCTBaseTextInputView.m:553)

 76 ??? (CoreFoundation + 521196) [0x1bb81a3ec]
模塊地址:0x1bb81a3ec - 0x7F3EC = 0x1BB79B000
解析:atos -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x1BB79B000 0x1bb81a3ec
結(jié)果:-[SBJSON maxDepth] (in demo) (SBJSON.m:1826)

 37 ??? (CoreFoundation + 500304) [0x1bb815250]
模塊地址:0x1bb815250 - 0x7A250 = 0x1BB79B000
解析:atos -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x1BB79B000 0x1bb815250
結(jié)果:-[SBJSON dealloc] (in demo) (SBJSON.m:504)

 37 ??? (CoreFoundation + 495652) [0x1bb814024]
模塊地址:0x1bb814024 - 0x79024 = 0x1BB79B000
解析:atos -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x1BB79B000 0x1bb814024
結(jié)果:-[SBJSON init] (in demo) (SBJSON.m:165)

 37 ??? (libsystem_kernel.dylib + 4584) [0x1fa75b1e8]
模塊地址:0x1fa75b1e8 - 0x11E8 = 0x1FA75A000
解析:atos -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x1FA75A000 0x1fa75b1e8
結(jié)果:解析失敗

 37 ??? (libsystem_kernel.dylib + 81484) [0x1fa76de4c]
模塊地址:0x1fa76de4c - 0x13E4C = 0x1FA75A000
解析:atos -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x1FA75A000 0x1fa76de4c
結(jié)果:__74+[NSAttributedString(OHCommodityConstructors) attributedStringWithString:]_block_invoke (in demo) (NSAttributedString+Attributes.m:125)

 37 ??? (libsystem_kernel.dylib + 3236) [0x1fa75aca4]
模塊地址:0x1fa75aca4 - 0xCA4 = 0x1FA75A000
解析:atos -o demo.app.dSYM/Contents/Resources/DWARF/demo -l 0x1FA75A000 0x1fa75aca4
結(jié)果:解析失敗
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容