iOS崩潰信息總結(jié)

iOS崩潰信息總結(jié)

崩潰類型

  1. Bad Memory Access [EXC_BAD_ACCESS // SIGSEGV // SIGBUS]
    內(nèi)存相關(guān)的崩潰,工具:Zombies
  2. Abnormal Exit [EXC_CRASH // SIGABRT]
    異常退出,如果main方法沒有被執(zhí)行就退出,則崩潰的Subtype為 LAUNCH_HANG
  3. Trace Trap [EXC_BREAKPOINT // SIGTRAP]
    與異常退出類似,如果存在debugger,則它被喚起;否則,則與異常退出的處理一致;
  4. Guarded Resource Violation [EXC_GUARD]
    訪問非法資源,例如:文件描述符已經(jīng)被關(guān)閉,還繼續(xù)訪問
  5. Resource Limit [EXC_RESOURCE]
    達到資源訪問上限,這不是崩潰,而是os發(fā)出的一個通知

一些特殊異常碼 參考資料

  1. 0x8badf00d 讀作“ate bad food”,這個異常一般是因為系統(tǒng)監(jiān)視器(watch dog)發(fā)現(xiàn)超時現(xiàn)象,終止app拋出,比如啟動或終止超時,或者是響應系統(tǒng)事件超時。

    系統(tǒng)事件列表:
    application:didFinishLaunchingWithOptions:
    applicationWillResignActive:
    applicationDidEnterBackground:
    applicationWillEnterForeground:
    applicationDidBecomeActive:
    applicationWillTerminate:

  2. 0xbad22222 標志VoIP類應用因為頻繁啟動終止。

  3. 0xdead10cc 讀作“dead lock”,當應用在后臺運行時,由于占用(hold onto)系統(tǒng)資源(比如通訊錄數(shù)據(jù)庫),被操作系統(tǒng)終止。

  4. 0xdeadfa11 讀作“dead fall”,標志應用程序可能因為無響應被用戶強行終止。

  5. 0xbaaaaaad 當前l(fā)og是整個系統(tǒng)的快照,而不是崩潰報告;觸發(fā)機制:home鍵+音量鍵,通常是用戶不小心創(chuàng)建的

  6. 0xc00010ff:系統(tǒng)響應熱(thermal)事件,導致app被殺掉;通常與特定的手機或環(huán)境有關(guān)。

崩潰信息參考

  1. Incident Identifier: 崩潰報告的id編號;
  2. CrashReporter Key:與device id一一對應,可以理解為device id的MD5值;
  3. Binary images:崩潰時已經(jīng)加載的二進制文件;

符號化iOS Crash文件的3種方法參考資料

  1. 使用XCode

    需要3個文件,把它們放在一個目錄,然后把.crash文件拖到Device Logs,選中該log,點擊菜單“符號化”即可;

    1. crash報告(.crash文件)
    2. 符號文件 (.dSym文件)
    3. 應用程序文件 (appName.app文件,把IPA文件后綴改為zip,然后解壓,Payload目錄下的appName.app文件), 這里的appName是你的應用程序的名稱。
  2. 使用命令行工具symbolicatecrash

    1. 依然將“.app“, “.dSYM”和 ".crash"文件放到同一個目錄下
    2. 輸入命令:
    export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer 
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash appName.crash appName.app > appName.log 
    
  3. 使用命令行工具atos

    語法:atos [-o AppName.app/AppName] -l loadAddress [-arch architecture] queryAddress...

    1. -o和-l參數(shù)必不可少,-arch參數(shù)可以忽略,查詢地址可以多個,例如:Last Exception Backtrace中所有的地址
    2. -o參數(shù)的二進制包可以是ipa包中的,也可以從dSYM文件中獲取,參考以下示例

    示例:2種方法均可,

       xcrun atos -o OneAPMDemoTest.app.dSYM/Contents/Resources/DWARF/OneAPMDemoTest -l 0x1000dc000 -arch arm64 0x1001a5a58
       xcrun atos -o OneAPMDemoTest.app/OneAPMDemoTest -l 0x1000dc000 0x1001a5a58

其他相關(guān)信息

  1. UUID: 每一個可執(zhí)行程序都有一個build UUID來唯一標識
    • crash文件中查詢:
      1. crash文件中的位置:
        Binary Images:
        0x1000dc000 - 0x100237fff OneAPMDemoTest arm64 <0328eee551ce3e2da04c1cd61cec89c4> /var/mobile/Containers/Bundle/Application/B1554786-0F88-4409-9D1A-2011E7B2679D/OneAPMDemoTest.app/OneAPMDemoTest
      2. 查詢“Binary Images:”,顯示2行
           $ grep --after-context=1 "Binary Images:" *crash  //顯示前二行,命令更通用
    3. 在crash文件中查詢“appName armv”,顯示1行;
           $ grep "OneAPMDemoTest arm64" *crash //命令更具體,每次需要修改
    4. 顯示:
           0x1000dc000 - 0x100237fff OneAPMDemoTest arm64 <0328eee551ce3e2da04c1cd61cec89c4> /var/mobile/Containers/Bundle/Application/B1554786-0F88-4409-9D1A-2011E7B2679D/OneAPMDemoTest.app/OneAPMDemoTest 
* 二進制文件中查詢:  
       $xcrun dwarfdump --uuid OneAPMDemoTest.app/OneAPMDemoTest
       UUID: 5D3C9DFD-9CAD-3C8A-889D-E95E532EC721 (armv7) OneAPMDemoTest.app/OneAPMDemoTest
       UUID: 0328EEE5-51CE-3E2D-A04C-1CD61CEC89C4 (arm64) OneAPMDemoTest.app/OneAPMDemoTest
* dSYM文件中查詢:
    使用mdls查看文件屬性
        $ mdls OneAPMDemoTest.app.dSYM
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,983評論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,772評論 3 422
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,947評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,201評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,960評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,350評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,406評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,549評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,104評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,914評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,089評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,647評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,340評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,753評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,007評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,834評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,106評論 2 375

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