iOS--Crash日志的分析

工作中難免或碰到crash,如果是開發(fā)環(huán)境,碰到簡單的crash還能重現(xiàn)下,如果不能重現(xiàn)的話,我們只能去分crash文件了。

首先看下面的crash問題,說句實話一看這個我是拒絕的,這怎么找原因啊,頭都大了。


68BFD825-BB35-4106-B030-772B9884FB82.png

1、 進程信息
第一部分是閃退進程的相關(guān)信息。

Incident Identifier : 是崩潰報告的唯一標(biāo)識符。

CrashReporter Key: 是與設(shè)備標(biāo)識相對應(yīng)的唯一鍵值。雖然它不是真正的設(shè)備標(biāo)識符,但也是一個非常有用的情報:如果你看到100個崩潰日志的CrashReporter Key值都是相同的,或者只有少數(shù)幾個不同的CrashReport值,說明這不是一個普遍的問題,只發(fā)生在一個或少數(shù)幾個設(shè)備上。

Hardware Model :標(biāo)識設(shè)備類型。 如果很多崩潰日志都是來自相同的設(shè)備類型,說明應(yīng)用只在某特定類型的設(shè)備上有問題。上面的日志里,崩潰日志產(chǎn)生的設(shè)備是iPhone 4s。

接下來幾行不言自明,無需贅述。

(2) 基本信息
這部分給出了一些基本信息,包括閃退發(fā)生的日期和時間,設(shè)備的iOS版本。
(3) 異常
Exception Type:異常的類型。
Exception Codes :異常錯誤碼
Termination Reason:閃退的原因,比如常見的數(shù)組越界啊,什么的。
Triggered by Thread:出現(xiàn)問題在哪個線程,這個比較重要,首先確定在哪個線程中出了問題,然后再去定位。

(4) 線程回溯
這部分提供應(yīng)用中所有線程的回溯日志。 線程調(diào)用的一些,堆棧信息,壓根看不懂,所有需要進行符號化處理。

用Xcode自帶的 symbolicatecrash 工具來解析的.crash文件

1、獲取crash文件:
a、直接從設(shè)備中獲取方法如下圖


![ ![屏幕快照 2016-09-21 下午9.16.49.png](http://upload-images.jianshu.io/upload_images/970305-cdbf93c91084a690.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://upload-images.jianshu.io/upload_images/970305-049db49fdc503ac7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

b、蘋果審核那邊發(fā)給你的(我的就是)

2、找到app包所對應(yīng)的.dSYM文件,強調(diào)要對應(yīng)
.dSYM 是保存 16 進制函數(shù)地址映射信息的中轉(zhuǎn)文件,我們調(diào)試的 symbols 都會包含在這個文件中,并且每次編譯項目的時候都會生成一個新的 dSYM 文件。測試給過來的.crash文件中,關(guān)于崩潰的確切語句和函數(shù)部分只有16進制地址符號,并不是我們在xcode調(diào)試時看到的xxx.cpp(xxfunction xx行)這樣的。一般發(fā)布一個版本需要保存好對應(yīng)的.dSYM和.app包,方便分析crash

![ ![屏幕快照 2016-09-21 下午9.21.56.png](http://upload-images.jianshu.io/upload_images/970305-e2d131f816f83400.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://upload-images.jianshu.io/upload_images/970305-0b838e396d87b630.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

3、就是找到Xcode中的symbolicatecrash工具咯,

我用的Xcode8,路徑為

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash  

其他版本的xcode,自己百度咯,反正都差不多。把我們需要的工具直接復(fù)制到桌面上來(方便用)。

4、.crash文件的分析
a、.配置環(huán)境變量DEVELOPER_DIR,(配置好了就不再需要)

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

b、新建一個文件夾,將第二步中獲取的兩個文件放在同一個文件夾中


QQ20160921-0.png
QQ20160921-1.png
注意:上面指的是其所在的路徑。

經(jīng)過上面的簡單幾步我們就能得到格式化好的crash日志,這樣就方便我們定位bug的位置了。

最后編輯于
?著作權(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)容

  • 本文就捕獲iOS Crash、Crash日志組成、Crash日志符號化、異常信息解讀、常見的Crash五部分介紹。...
    xukuangbo_閱讀 1,722評論 0 0
  • 寫在前面:本文會在最開頭將蘋果官方的文檔Understanding and Analyzing Applicati...
    小小外星人閱讀 26,575評論 23 130
  • 轉(zhuǎn)自http://www.raywenderlich.com/zh-hans/30818/ios應(yīng)用崩潰日志揭秘 ...
    RunSnails閱讀 4,633評論 2 22
  • 昨天睡的很早,早到醞釀作業(yè)時睡著了,一覺到早上8點,起來依然覺得很累。今天回來早,5點到家,躺車上又睡著了,又睡到...
    一個意外的結(jié)尾閱讀 174評論 1 0
  • 利用嫉妒追女孩的追女生的策略人都是情緒的動物,百分之九十九的行為都受到自身的影響,開心是一種情緒,難過,悲傷,幸福...
    紅豆印跡閱讀 925評論 0 0

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