對(duì)于一般的錯(cuò)誤全局?jǐn)帱c(diǎn)就可以快速定位,或者是根據(jù)控制臺(tái)的輸出內(nèi)容也可以快速定位錯(cuò)誤的原因岭皂!可是如果程序崩潰在main函數(shù)并且控制臺(tái)沒有任何輸入郊霎,那就比較頭疼了!一點(diǎn)一點(diǎn)排除實(shí)在是太浪費(fèi)時(shí)間了爷绘!根據(jù)我最近遇到的bug來講述一下如何快速定位錯(cuò)誤代碼的位置书劝!
只能根據(jù)這僅有的有點(diǎn)提示信息進(jìn)行分析。exc_bad_access(code=exc_i386_gpflt)錯(cuò)誤的原因是內(nèi)存泄露土至,訪問了已經(jīng)釋放的對(duì)象導(dǎo)致的购对;
首先通過xcode再來試一下定位錯(cuò)誤的位置
設(shè)置xcode開啟僵尸對(duì)象的定位
這時(shí)控制臺(tái)有輸出了
可以確定的是DisclaimerViewController控制器的問題,但是還是不夠準(zhǔn)確陶因;
再來試試instruments進(jìn)行分析
不知道是不是xcode問題 骡苞,也無法定位到代碼位置;(以前我就遇到過xcode的原因 無法定位到代碼位置 重新安裝就沒有問題了楷扬,如果可以定位到 麻煩留言告知一下)
利用終端定位
打開活動(dòng)監(jiān)視器
找到相應(yīng)的app進(jìn)程
根據(jù)pid 和錯(cuò)誤代碼 在終端進(jìn)程查看sudo malloc_history 19464 0x7f979d4c48c0
找到最后執(zhí)行的代碼進(jìn)行相應(yīng)的修改就可以了
0x7f979d4c48c0:為xcode開啟僵尸對(duì)象定位時(shí)輸出的錯(cuò)位代碼
最終定位在-[FeatureCollectionController tapToOtherVC]
我在FeatureCollectionController控制器的tapToOtherVC方法里使用了DisclaimerViewController解幽!對(duì)其進(jìn)行相應(yīng)的修改就可以了!
感謝您的閱讀烘苹,希望對(duì)您有所幫助躲株!歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處镣衡,尊重他人勞動(dòng)霜定!