-
在運行過程中,如果出現(xiàn)EXC_BAD_ACCESS 異常,往往提示的信息很少或者沒有提示,啟用NSZombieEnabled后在控制臺能打印出更多的提示信息,便于debug,請注意,僵尸模式下的調試工作只能在模擬器中實現(xiàn),我們無法在物理設備上完成這一診斷流程。
啟用僵尸對象.jpg -
異常斷點,一般程序crash時Xcode一般會定位到main函數(shù)中,得不到詳細的crash信息,打上異常斷點后就極大可能定位到程序的crash處,利于debug。
{異常斷點.jpg -
一般來說,在創(chuàng)建工程的時候,應該在Build Settings啟用Analyze During 'Build',這樣每次編譯時都會自動靜態(tài)分析。這樣的話,寫完一小段代碼之后,就馬上知道是否存在內存泄露或其他bug問題,并且可以修bugs。當然你也可以直接長安運行程序按鈕,在彈出框中選擇analyze,也可以進行靜態(tài)分析。
啟動靜態(tài)分析1.jpg
靜態(tài)分析2.jpg -
如果你想在運行的時候查看APP是否存在內存泄露,你可以使用Xcode上instruments工具上的Leaks模塊進行內存分析。但是有些內存泄露是很難檢查出來,有時只有通過手動覆蓋dealloc方法,看它最終有沒有調用。
長按運行按鈕,在彈出框中選擇profile會自動彈出Instruments程序,選擇leaks模塊進入leaks圖所示界面,此時左上角第二個紅框的內容會自動填充,其他的按框操作,然后點擊左上角第一個框的紅色圓點按鈕開始檢測APP內存,這時會在模擬器(或真機上,如果你的target是真機的話)上啟動程序,然后操作你的程序,觀察leaks一行有沒有出現(xiàn)紅色的類似于田字的叉,如果有說明內存泄露了,點擊紅叉,在下面callTree中查看具體內存泄露的地方,雙擊便可定位到泄露內存的代碼的地方,如果你覺得在控制臺不好改程序,可以點擊右上角的xcode標識,就會在xcode中定位到對應的代碼。
Instruments.jpg
leaks.jpg
iOS 調試及內存分析基本技巧
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內容
- 上一篇博客iOS/OS X內存管理(一):基本概念與原理主要講了iOS/OSX 內存管理中引用計數(shù)和內存管理規(guī)則,...
- 本書說了些什么? 馬丁?塞利格曼是現(xiàn)代積極心理學之父,他一直致力于研究無助感。通過一些科學實驗和應用實踐,他發(fā)現(xiàn)無...





