如何在 iOS 的 crash log 上 debug?

時間 2021-05-12 03:56:08

1樓:睡不醒的考拉

Step 1: 確定 .dsym 和 crash report 的 UUID 是一致的

Step 2: 從 crash report 分析出該程序的執行時起始位址、崩潰的執行時位址。

兩者的差值即為偏移量。

Step3: 獲取 .dsym 檔案中 TEXT 段的起始位址

其中的 vmaddr 欄位的值即為 TEXT 段的起始位址

根據虛擬記憶體偏移量不變原理,知道 .dsym 檔案 TEXT 段的起始位址,再加上偏移量就可以知道 .dsym 檔案中的崩潰位址了。

Step 4: 計算.dsym 檔案中的崩潰位址

崩潰位址 = .dsym 檔案 TEXT 段的起始位址 + 偏移量

Step 5: 解析崩潰資訊

注: architecture 是執行裝置的指令集,而不是二進位制檔案的指令集。比如 armv7 指令集的二進位制檔案執行在指令集為 arm64 的裝置上,該處的 architecture 為 arm64

該命令的執行結果為發生崩潰的 fileName 和 lineOfCode

2樓:盛寧

我的做法一般是提交後在git上打個標籤,要找問題時切換到這個ref上。直接用Organizer就能看到了。這樣做比用.

dSYM啥的好處是:1.簡單 2.

容易定位上下文

如何在 Windows 下進行 iOS 開發?

unwind 直接使用商業方案 基於蘋果開源cctools改造,包含發布工具,適合遊戲開發 iOS Build Environment for Windows by Pierre Marie Baty win10的Linux WSL 環境下以PE形式載入原生Mac O可執行檔案編譯執行工具鏈shin...

iOS11強制禁用32位應用,意義何在?

禁言Willian Z 想想那個時候的 iPhone 最大記憶體是 1G,的確很不夠用啊。跑題一句 其實對於大多數開發者來說遷移 64 位並沒有什麼需要很大改動的程式碼,即使那一年也是這樣。 於行 蘋果這麼幹就無數人捧臭腳,微軟這麼幹估計早就被人噴死了。就好像蘋果搞壟斷是為了系統安全,微軟搞壟斷就是...

iOS 7 1 體驗如何?

優點 1.流暢度提公升。系統和很多應用速度都快了,不過這一點5s和其他機器相比應該感覺不那麼明顯 2.ios7.0的一些bug沒有了,例如白屏3.指紋識別率大幅提公升,現在終於算可以用了,以前幾乎就是個擺設缺點 其實主要缺點就乙個,導致我後悔公升級了,就是發熱 耗電。先用ota公升級,耗電大概快了1...