iOS版友盟錯(cuò)誤`Application received signal SIGSEGV` 找出野指針對(duì)象定位

iOS版友盟錯(cuò)誤Application received signal SIGSEGV 找出野指針對(duì)象定位

友盟相關(guān)日志

錯(cuò)誤信息:
Application received signal SIGSEGV
錯(cuò)誤詳情:

錯(cuò)誤詳情

錯(cuò)誤分析:
SIGSEGV和SIGBUS一般是由于訪問(wèn)已被釋放的內(nèi)存或者調(diào)用不存在的方法所致。

錯(cuò)誤定位:

單條錯(cuò)誤詳情

vBell -- 應(yīng)用名稱
0x100475b80 -- 崩潰時(shí)的調(diào)用方法的16進(jìn)制函數(shù)地址
_ZNK6andjoy7RefBase9incStrongEPKv + 28 -- 文件的地址以及方法所在的行的位置

找出xcode 打的包路徑

接下來(lái)就是本文的重點(diǎn),將這條“密文”解析成“明文”了。

首先,要找到該項(xiàng)目發(fā)布時(shí)Archive編譯出來(lái)的.xcarchive文件。這個(gè)文件包含了.DSYM文件,可以通過(guò)XCode->菜單欄中的Window->Organizer,打開Archives列表,找到對(duì)應(yīng)的文件,點(diǎn)擊右鍵Show in Finder。

通過(guò)Organizer找到.xcarchive文件
在Finder里所要的.xcarchive文件

打開該文件,選中該文件,點(diǎn)擊右鍵 -> 顯示包內(nèi)容。

xcarchive顯示包內(nèi)容
xcarchive顯示包內(nèi)容
最終文件

說(shuō)明:正常的話(該版本只Archive一次的話),包里面dSYMs文件夾里只有一個(gè)以項(xiàng)目名稱命名的.app.dSYM文件(如上圖中的XingYunGlobalMeeting.app.dSYM文件)。如果同一版本重新Archive(即多次Archive)的話,會(huì)有多個(gè).dSYM文件,此時(shí)我們就要根據(jù)友盟錯(cuò)誤分析錯(cuò)誤詳情里的倒數(shù)第五行的dSYM UUID確定對(duì)應(yīng)的.dSYM文件。

根據(jù)UUID確定對(duì)應(yīng)的.dSYM文件.png

然后就要通過(guò)這個(gè)文件定位錯(cuò)誤信息了,共有三種方法:

只介紹方法一(使用電腦原生終端, 而且方法通用)
方法一:使用xcrun atos命令
【說(shuō)明:最靠譜!推薦使用該方法,特別是該項(xiàng)目的該版本重復(fù)Archive的話(即上一步驟有多個(gè).dSYM文件)的話,其他兩種方法可能不能使用】
1、選中上一步驟確定的對(duì)應(yīng).dSYM文件,點(diǎn)擊右鍵顯示包文件,按照路徑->Contents->Resources->DWARF,找到以項(xiàng)目名命名的文件。


Snip20170612_10.png

2、打開終端Terminal,輸入 atos -o ,然后把上一步中定位的文件拖入終端,補(bǔ)入文件路徑,空格,輸入友盟錯(cuò)誤詳情中單條錯(cuò)誤信息里的16進(jìn)制函數(shù)地址(如:0x100037da4)
完整命令:

sunlindeMac-mini:~ sunlin$ atos -o /Users/sunlin/Library/Developer/Xcode/Archives/2017-06-12/vBell\ 2017-6-12\ 上午11.45.xcarchive/dSYMs/vBell.app.dSYM/Contents/Resources/DWARF/vBell 0x100475b80

3、終端返回我們看得懂得的“明文”錯(cuò)誤信息:
__41-[MSSBrowseCollectionViewCell createCell]_block_invoke (in XingYunGlobalMeeting) (MSSBrowseCollectionViewCell.m:37)

發(fā)生崩潰的方法:andjoy:
崩潰所在源碼文件::RefBase::incStrong(void const*) const (in vBell)
發(fā)生崩潰的方法在源文件中的行號(hào): 28

方法一atos命令解析錯(cuò)誤
最后編輯于
?著作權(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)容