iOS 用symbolicatecrash來符號(hào)化崩潰日志

//聯(lián)系人:石虎QQ: 1224614774昵稱:嗡嘛呢叭咪哄

一、用symbolicatecrash來符號(hào)化崩潰日志

1.崩潰日志

symbolicatecrash demo1.crash Demo1.app.dSYM -o processed.crash

2.符號(hào)化后的crash文件將會(huì)被寫入processed.crash中,

然后我們來看看如果把Demo1.app.dSYM去掉會(huì)怎樣,為了看到符號(hào)化的過程,我們可以加上-v

symbolicatecrash demo1.crash -o processed.crash -v

3.我們主要看Demo1的符號(hào)化過程,其他系統(tǒng)調(diào)用其實(shí)也會(huì)在這個(gè)過程中被符號(hào)化。#后面是我添加的注釋

--[2cf1790547ff3a1cac055152319617ba]fetching symbol file for Demo1? ? #開始尋找Demo1的符號(hào)文件

Running mdfind "com_apple_xcode_dsym_uuids == 2CF17905-47FF-3A1C-AC05-5152319617BA"? ? #使用Spotlight搜索uuid為2CF17905-47FF-3A1C-AC05-5152319617BA的dsym文件

#接下來是使用file,lipo,otool等來分析dSYM的相關(guān)信息

.

--[2cf1790547ff3a1cac055152319617ba]MATCH(spotlight): ...? #確認(rèn)找到對(duì)應(yīng)的dSYM文件

.

atos -arch arm64 -l 0x10006c000 -o '..../Demo1.app.dSYM/Contents/Resources/DWARF/Demo1' 0x00000001000706e8 0x0000000100070a80

我們看到最后會(huì)發(fā)現(xiàn)實(shí)際上symbolicatecrash是使用atos來尋找調(diào)用棧地址對(duì)應(yīng)的調(diào)試符號(hào)的。

二、我們來看一下atos所使用的參數(shù):

-arch所運(yùn)行設(shè)備的架構(gòu),有arm64,armv7等等

-l二進(jìn)制鏡像運(yùn)行時(shí)加載的地址

-o后面是符號(hào)文件或者含有調(diào)試符號(hào)的可執(zhí)行文件(debug編譯所產(chǎn)生的可執(zhí)行文件默認(rèn)是包含調(diào)試符號(hào)的.

再后面就是需要符號(hào)化的調(diào)用棧地址,5? Demo1 ? ? 0x00000001000706e8 0x10006c000 + 18152,0x00000001000706e8就是其中的一個(gè)地址。

三、二進(jìn)制鏡像運(yùn)行時(shí)加載的地址通過如下方式獲得

Binary Images:

0x10006c000 - 0x100073fff Demo1 arm64? <2cf1790547ff3a1cac055152319617ba> /var/mobile/Containers/Bundle/Application/7E6DE925-0B33-4699-89F7-05381876AD81/Demo1.app/Demo1

中的0x10006c000就是這個(gè)崩潰日志所對(duì)應(yīng)的二進(jìn)制鏡像加載地址。

綜上所述,symbolicatecrash主要幫我們做了兩件事情,匹配到對(duì)應(yīng)的dSYM文件,使用atos符號(hào)化每個(gè)調(diào)用棧地址。

謝謝!!!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Determining Whether a Crash Report is Symbolicated(決定是否符號(hào)...
    helinyu閱讀 1,559評(píng)論 0 1
  • 什么是崩潰日志 iOS的App在崩潰時(shí),系統(tǒng)會(huì)記錄下當(dāng)前的每個(gè)線程的調(diào)用棧信息等等,并保存到設(shè)備中。這些信息匯總起...
    handyTOOL閱讀 4,035評(píng)論 0 12
  • 該文章屬于劉小壯原創(chuàng),轉(zhuǎn)載請(qǐng)注明:劉小壯[http://www.itdecent.cn/u/2de707c93d...
    劉小壯閱讀 38,080評(píng)論 45 121
  • 本文就捕獲iOS Crash、Crash日志組成、Crash日志符號(hào)化、異常信息解讀、常見的Crash五部分介紹。...
    xukuangbo_閱讀 1,724評(píng)論 0 0
  • 繼承--原型創(chuàng)建對(duì)象在面向?qū)ο蟮恼Z(yǔ)言中,存在了三大特性—封裝、繼承、多態(tài)。我們前面一直說javascript是面向...
    __妮妮閱讀 289評(píng)論 0 0

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