iOS友盟崩潰日志定位代碼

簡單記錄下我是如何根據(jù)友盟崩潰列表上的崩潰日志定位到具體哪行代碼導(dǎo)致崩潰的 .

首先, 我用的是下圖這個(gè)分析工具, 十分感謝作者的無私奉獻(xiàn) , 附上下載地址, 喜歡的童鞋動動小手指Star下吧

https://github.com/answer-huang/dSYMTools


分析工具.png

打開工具后將對應(yīng)版本的archive文件拖進(jìn)來, 把圖中對應(yīng)信息按照崩潰日志里的詳細(xì)信息填寫

(注意一定要是對應(yīng)版本的archive文件, 否則定位信息不準(zhǔn)! 所以保留之前打包信息還是很有必要且重要的!)


崩潰日志.png

大括號里面顯示調(diào)用堆棧信息, 程序調(diào)用順序是下往上調(diào)用的, 如上圖中箭頭所示, 最上面那個(gè)地址也就是最后一次調(diào)用的方法, 正式它導(dǎo)致了崩潰, 所以在分析工具中錯(cuò)誤信息內(nèi)存地址就填這個(gè)就行了,CPU Type 和slide address 對應(yīng)填即可 , 之后點(diǎn)擊分析, 如下圖所示

定位代碼.png

有可能錯(cuò)誤的地方 顯示了是哪個(gè)文件的哪個(gè)方法的哪一行出錯(cuò), 這個(gè)不用解釋了, 直接去對應(yīng)版本的代碼里找到錯(cuò)誤的地方 :

錯(cuò)誤代碼.png

定位到這行代碼導(dǎo)致了崩潰, 檢查下定位是否準(zhǔn)確. 我們看看友盟上的錯(cuò)誤信息

-[__NSArrayM objectAtIndex:]: index 9 beyond bounds [0 .. 2]

數(shù)組越界, 在崩潰不好重現(xiàn)的情況下, 我們可以很清晰的推測這行代碼確實(shí)存在問題, passStr 的值可能大于數(shù)組的數(shù)量, 這時(shí)我們需要做一個(gè)安全判斷,防止崩潰. 更好的方法是給數(shù)組的字典擴(kuò)展一個(gè)方法, 取值時(shí)允許任何范圍, 但是越界就返回空 :

- (id)objectOrNilAtIndex:(NSUInteger)index {

return index

}

使用分類給數(shù)組增加以上方法, 字典同理, 調(diào)用此方法替換系統(tǒng)方法, 代碼更安全 .

有些錯(cuò)誤日志定位的到錯(cuò)誤信息是UmengSignalHandler時(shí), 可以不用管

友盟的官方解釋是:

UmengSignalHandler 不是錯(cuò)誤,是捕捉crash的方法短蜕,本身不引起crash峭范, 當(dāng)crash發(fā)生時(shí)由它來捕捉。如果您不需要使用錯(cuò)誤統(tǒng)計(jì)饰序,可以通過

[MobClick setCrashReportEnabled:NO]; 關(guān)閉浴滴。

需要注意的是, 關(guān)閉錯(cuò)誤統(tǒng)計(jì)之后就不會再收到用戶的崩潰日志, 所以要慎重, 在確定公司不需要統(tǒng)計(jì)用戶崩潰信息時(shí)再關(guān)閉.

錯(cuò)誤日志可以看出很多東西, 要學(xué)會善用錯(cuò)誤日志 , 比如下面這個(gè)日志:


約束沖突.png

這個(gè)日志根本不需要使用分析工具定位錯(cuò)誤代碼, 直接看錯(cuò)誤信息:

Auto Layout still required after executing -layoutSubviews. MoneyInfo's implementation of -layoutSubviews needs to call super.

如果是你負(fù)責(zé)的這部分, 那么你看到了這個(gè)信息應(yīng)該能馬上反應(yīng)自己的約束加的是不是有問題, 畢竟自己寫的代碼加的約束肯定自己最清楚弱點(diǎn).

如果不是你負(fù)責(zé)的這部分, 可以去看看MoneyInfo這個(gè)文件, 看看xib或者storyboard 約束是否有問題. 如果是代碼加的約束, 那就只能挨個(gè)捋了.

千萬不要像下面這位童鞋一樣, 加完約束, 有沖突但程序沒崩就不管了 . 這個(gè)習(xí)慣非常不好彻磁,一定要杜絕.


xib約束沖突.png

Xcode里也有詳細(xì)的崩潰日志:


Xcode里的crash log.png

基本上能定位是哪個(gè)文件的哪個(gè)方法的哪個(gè)操作引起崩潰, 但是不能準(zhǔn)確定位到是哪一行代碼, 這里后面的+7990, +2168, +2090, +4012等這些數(shù)字我也不知道什么意思, 還希望知道的盆友告知下, 先謝謝啦~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市辙浑,隨后出現(xiàn)的幾起案子激涤,更是在濱河造成了極大的恐慌,老刑警劉巖判呕,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倦踢,死亡現(xiàn)場離奇詭異,居然都是意外死亡侠草,警方通過查閱死者的電腦和手機(jī)辱挥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來边涕,“玉大人晤碘,你說我怎么就攤上這事」︱眩” “怎么了园爷?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長式撼。 經(jīng)常有香客問我童社,道長,這世上最難降的妖魔是什么著隆? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任扰楼,我火速辦了婚禮,結(jié)果婚禮上美浦,老公的妹妹穿的比我還像新娘弦赖。我一直安慰自己,他們只是感情好浦辨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布蹬竖。 她就那樣靜靜地躺著,像睡著了一般荤牍。 火紅的嫁衣襯著肌膚如雪案腺。 梳的紋絲不亂的頭發(fā)上庆冕,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天康吵,我揣著相機(jī)與錄音,去河邊找鬼访递。 笑死晦嵌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惭载,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼旱函,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了描滔?” 一聲冷哼從身側(cè)響起棒妨,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎含长,沒想到半個(gè)月后券腔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拘泞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年纷纫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陪腌。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡辱魁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诗鸭,到底是詐尸還是另有隱情染簇,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布强岸,位于F島的核電站剖笙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏请唱。R本人自食惡果不足惜弥咪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望十绑。 院中可真熱鬧聚至,春花似錦、人聲如沸本橙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽甚亭。三九已至贷币,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間亏狰,已是汗流浹背役纹。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暇唾,地道東北人促脉。 一個(gè)月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓辰斋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瘸味。 傳聞我的和親對象是個(gè)殘疾皇子宫仗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容