Xcode 根據(jù)崩潰信息定位到某一行代碼

前言

最近,因為調(diào)試的問題浪費了不少時間,之前不打印崩潰日志的問題,近日又遇到崩潰信息無法定位到具體代碼,只是簡單的報錯信息:

類似這樣的:
-[NSNull length]: unrecognized selector sent to instance 0x1b74e0878

表面看是因為 調(diào)用 length 崩了,全局搜了 length 打斷點也無濟于事,實在頭大,找了各種方法:

方法一:

第一步:需要保存打包的dSYMs文件(查找的時候一定要找到對應(yīng)的dSYMs文件,不然找不到對應(yīng)的代碼)

image.png

找到最終需要的符號表文件:

image.png

第二步:打開終端,

dwarfdump --arch=arm64 --lookup 0x1b6e54878 (報錯的內(nèi)存地址) /Users/username/Library/Developer/Xcode/Archives/2018-11-11/GantangBus\ 2018-11-11\ 下午8.08.xcarchive/dSYMs/GantangBus.app.dSYM

后邊為項目符號表的目錄,一定是到 app.dSYM 結(jié)束,回車:

image.png

恭喜你中獎了,然并卵,這種方式實用于 release 版本的,本地打包的 release 版本也不行,因為 debug 版本 打包后壓根沒有 符號表文件,并且是上線以后用報錯的地址,在上線的這個符號表中才能知道的,適用于上線后的調(diào)試,我猜測是這樣,蘋果有一個隨機地址分配。

像集成騰訊 的 Bugly 上線后上傳符號表文件,隨后就看到找到相應(yīng)報錯的代碼在第幾行了,其他的一個原理。

方法一 kill;

方法二:

其實就是 Xcode 的全局?jǐn)帱c,突然給忘了,忽略了,一時沒想起來,網(wǎng)上查閱時才想起來,以前有的時候可能會不好使,有的好使,其實很簡單 ,如下:

  1. 在 XCode 界面中按cmd + 相應(yīng)的序號,快捷鍵,或者直接點擊選項卡,跳到Breakpoint的tab 下
image.png
  1. 然后點擊左下角的+號,增加一個Exception的斷點,如下圖所示。
image.png
  1. 點擊接下來會出現(xiàn)一個“All Exception”的調(diào)試選項:
image.png

其實已經(jīng) OK 了,一個全局?jǐn)帱c已經(jīng)添加了,將鼠標(biāo)放到上面,右擊選擇“Edit Breakpoint”,可以查看選項的具體內(nèi)容如下:(不用做任何修改,也可以設(shè)置相應(yīng)的條件,編輯斷點)

image.png

OK,大功告成,當(dāng)異常出現(xiàn)時,會自動停在異常處,而不會拋出到UIApplicationMain。就可以定位到具體拋出異常的代碼了,完美的解決了我的問題,以前沒發(fā)現(xiàn)這么好使,就沒怎么用了,可能沒注意到吧!

直接定位到我的代碼行數(shù),原來是因為后臺的數(shù)據(jù)有一條為 null 的情況,沒有做處理造成的。

attributionName = "<null>"

還有數(shù)組越界的情況,很常見了,定位很準(zhǔn)確?。。≠澮粋€,重新啟用

?著作權(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)容

  • 無論你是在技術(shù)棧中使用 Swift,Objective-C,C++,C,還是完全不同的語言,都需要學(xué)習(xí)如何創(chuàng)建斷點...
    KarenLoo閱讀 1,643評論 0 3
  • 寒風(fēng)冬日,落魄的鐘聲再次猛烈響起讓凄苦震耳欲聾,原本艱辛的北漂生涯再度搖搖欲墜,只是這場逃徙來的猝不及防...
    婉hw閱讀 131評論 1 2
  • 期盼的熱鬧 心卻又一次的游離 我的思維遭到了蛀蟲的啃噬 總給我?guī)砥痰幕秀?低垂的頭 孤寂的心 這微笑的背后是苦...
    靜若青蓮閱讀 332評論 19 33
  • CHAPTER 2 Offred一夜未睡,她躺在床上,等待著“眼睛”的敲門聲。他們會問夫人您家的使女在家嗎?沒什么...
    gibacat閱讀 320評論 0 0
  • 要求: 1.佳明心率手表一只 本文以佳明fen3hr為例,如果是其他佳明手表可能在操作上稍有不同。 2.數(shù)據(jù)充電線...
    可可V西里閱讀 2,059評論 1 1

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