iOS線上APP崩潰 Crash 分析

2021-08-20 05:54:48 字數 1121 閱讀 4298

這兩周一直在研究如何追蹤線上的bug,如何快速分析出程式到底崩潰在什麼地方,從底層了解crash是如何產生的、如何傳遞的、以及是如何分析出來的。雖然專案組並沒有對這些要求很嚴格,但是作為乙個高階開發人員這些是我們必須要了解的,要弄明白的。之前專案中用的是bugly,其實接入bugly之後,大部分問題不需要我們自己去研究了,對於追蹤閃退等問題bugly都幫我們做了。

1、ios中crash的產生和捕獲

2、如何獲取crash具體資訊和crash檔案

(1)、自己捕獲crash資訊,上傳到自己伺服器或者直接傳送到郵箱裡。

(2)、通過xcode-devices-view device logs,去查詢檔案。(參考:xcode:ios崩潰日誌分析方法)

(3)、通過xcode-organizer-crashs,查詢線上崩潰報告。(定位不全面、不是很靠譜、還需要使用者開啟共享隱私資料)

(4)、接入bugly等第三方統計工具。

3、拿到crash的具體資訊,利用符號表去解析

說一下dsym,不管是自己還是bugly去解析crash都需要dsym。因為dsym裡邊存著符號表,符號表裡邊存的就是記憶體地 址、函式位址、偏移量等內容。我們分析crash檔案的時候,就是拿崩潰的記憶體位址,去符號表裡邊找到對應的方法。

有關dsym的詳細介紹可以看bugly官方文件的總結:ios符號表

這裡說一下如何檢視uuid:

1、檢視dsym檔案的的uuid,命令列執行:xcrun dwarfdump --uuid ***(***為dsym的路徑)

2、檢視.crash檔案的uuid,在crash日誌中的binary images:中的第一行尖括號內。如:armv7 <8bdeaf1a0b233ac199728c2a0ebb4165>

推薦乙個github上根據dsym定位崩潰的工具:

ios開發技巧-崩潰分析

ios崩潰crash大解析

手動解析crashlog之——原理篇

手動解析crashlog之-方法篇

ios crash log 解析 symbol address = stack address - slide 執行時獲取slide的api 利用dwarfdump從dsym檔案中得到symbol

iOS從crash資訊中查詢崩潰原因

1.製作崩潰 以及新增bughd sdk 這裡我為了測試,寫了乙個簡單的陣列越界,如圖所示 import 匯入標頭檔案1 firhandlecrashwithkey your general key 這裡的 your general key 是建立每個專案時將自動生成專案對應的general key...

xcode7 倒騰ios 崩潰日誌crash

在ios當中,蘋果提供了一套機制,方便開發者尋找閃退的根源。模擬崩潰環境,此處認為製造乙個崩潰方法。ibaction addbutton id sender崩潰日誌裡面就記錄我們需要的東西,例如,程序名稱,硬體型別,工程bouldid,版本號,時間。找到如下 這個就是最後異常堆疊資訊,可以看到一層一...

android ndk開發crash崩潰定位

android使用ndk開發crash崩潰定位 1 法一 使用ndk stack輸出呼叫堆疊 cd home hk android develop android ndk r12b 將log.txt放在這個目錄 ndk stack sym home hk project obj local arme...