如何通過友盟的錯(cuò)誤分析報(bào)告,定位到錯(cuò)誤代碼的位置

加入友盟統(tǒng)計(jì)功能后,友盟后臺(tái)會(huì)有一個(gè)錯(cuò)誤分析的統(tǒng)計(jì)項(xiàng),點(diǎn)進(jìn)去之后可以查看項(xiàng)目的錯(cuò)誤報(bào)告。對(duì)于開發(fā)人員來說,查看報(bào)告不是最終目的,找到錯(cuò)誤的原因才是最終目的。如何通過這堆報(bào)告定位到錯(cuò)誤的代碼呢?早上查了好些資料,終于成功了。

我們先看一下錯(cuò)誤報(bào)告是什么樣的:


友盟錯(cuò)誤報(bào)告

這份報(bào)告所包含的主要信息有:

1、首行是錯(cuò)誤的原因。顯而易見,以上的錯(cuò)誤是由于數(shù)組越界了。

2、打紅色馬賽克的地方是你的工程名字。

3、紅色馬賽克之間有一個(gè)淡綠色的地址,這就是錯(cuò)誤代碼的位置。

4、 dSYM UUID,這個(gè)是dSYM文件的唯一標(biāo)識(shí)。dSYM 是保存 16 進(jìn)制函數(shù)地址映射信息的中轉(zhuǎn)文件,我們調(diào)試的 symbols 都會(huì)包含在這個(gè)文件中,并且每次編譯項(xiàng)目的時(shí)候都會(huì)生成一個(gè)新的 dSYM 文件。

5、CPU Type. 定位錯(cuò)誤的時(shí)候,我們也需要用到這個(gè)參數(shù)。

定位錯(cuò)誤代碼,我們需要將 xx.app 和 xx.app.dSYM 文件找出來.

1、在Windows->Organizer->archivers可以看到你的每一次的打包。然后選擇你要查看的錯(cuò)誤報(bào)告所在的版本,這個(gè)一定要選對(duì)了。


查找所有的archivers包

選擇你的錯(cuò)誤報(bào)告所對(duì)應(yīng)的包

找到對(duì)應(yīng)的包后,點(diǎn)擊右鍵,然后選擇Show in Finder的選項(xiàng),查看這個(gè)包中的內(nèi)容,如圖


archivers包

再右鍵選擇顯示包內(nèi)容,這時(shí)我們看到 有dSYMs,Products,SCMBlueprint三個(gè)文件夾,我們需要用到的是前兩個(gè)文件夾

dSYMs文件夾

Products文件夾

此時(shí),將這倆文件夾中最里層的文件都取出來,放到一個(gè)新的文件夾中

將倆文件放到新的文件夾中

2.打開終端,cd到剛才新建的文件夾(錯(cuò)誤報(bào)告)的目錄下

輸入命令xcrun atos -arch arm64 -o xxxx.app/xxxx 0x10019bc48

其中 arm64是CPU Type;

xxxx對(duì)應(yīng)的是你的工程名,也就是上文友盟錯(cuò)誤報(bào)告圖片中打紅色馬賽克的部分;

0x10019bc48 是錯(cuò)誤代碼的地址,也就是上文友盟錯(cuò)誤報(bào)告圖片中淡綠色的那個(gè)內(nèi)存地址。

定位錯(cuò)誤代碼

其中-[SubscribeViewController isSubcribeSuccess:] (in woshiPM) (SubscribeViewController.m:342)就是錯(cuò)誤代碼的位置,在SubscribeViewController.m中的isSubcribeSuccess方法中,342是代碼所在的行數(shù)。

這樣就可以在你的工程中找到相應(yīng)的代碼去做修改了。


轉(zhuǎn)自:http://www.itdecent.cn/p/17fd659df460?open_source=weibo_search

?著作權(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)容

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