iOS 調試及內存分析基本技巧

  1. 在運行過程中,如果出現(xiàn)EXC_BAD_ACCESS 異常,往往提示的信息很少或者沒有提示,啟用NSZombieEnabled后在控制臺能打印出更多的提示信息,便于debug,請注意,僵尸模式下的調試工作只能在模擬器中實現(xiàn),我們無法在物理設備上完成這一診斷流程。


    啟用僵尸對象.jpg
  2. 異常斷點,一般程序crash時Xcode一般會定位到main函數(shù)中,得不到詳細的crash信息,打上異常斷點后就極大可能定位到程序的crash處,利于debug。


    {異常斷點.jpg
  3. 一般來說,在創(chuàng)建工程的時候,應該在Build Settings啟用Analyze During 'Build',這樣每次編譯時都會自動靜態(tài)分析。這樣的話,寫完一小段代碼之后,就馬上知道是否存在內存泄露或其他bug問題,并且可以修bugs。當然你也可以直接長安運行程序按鈕,在彈出框中選擇analyze,也可以進行靜態(tài)分析。


    啟動靜態(tài)分析1.jpg

    靜態(tài)分析2.jpg
  4. 如果你想在運行的時候查看APP是否存在內存泄露,你可以使用Xcode上instruments工具上的Leaks模塊進行內存分析。但是有些內存泄露是很難檢查出來,有時只有通過手動覆蓋dealloc方法,看它最終有沒有調用。
    長按運行按鈕,在彈出框中選擇profile會自動彈出Instruments程序,選擇leaks模塊進入leaks圖所示界面,此時左上角第二個紅框的內容會自動填充,其他的按框操作,然后點擊左上角第一個框的紅色圓點按鈕開始檢測APP內存,這時會在模擬器(或真機上,如果你的target是真機的話)上啟動程序,然后操作你的程序,觀察leaks一行有沒有出現(xiàn)紅色的類似于田字的叉,如果有說明內存泄露了,點擊紅叉,在下面callTree中查看具體內存泄露的地方,雙擊便可定位到泄露內存的代碼的地方,如果你覺得在控制臺不好改程序,可以點擊右上角的xcode標識,就會在xcode中定位到對應的代碼。


    Instruments.jpg

    leaks.jpg
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 前言 最近博主臨近畢業(yè)季,為了完美的寫一篇畢業(yè)論文,真是:“鋤禾日當午,汗滴禾下土”<—— 這句詩跟畢業(yè)我寫畢業(yè)論...
    Dav1dDay閱讀 1,232評論 1 7
  • 摘自iOS界段子小王子http://www.cnblogs.com/daiweilai/p/4421340.htm...
    skylor閱讀 767評論 0 2
  • 上一篇博客iOS/OS X內存管理(一):基本概念與原理主要講了iOS/OSX 內存管理中引用計數(shù)和內存管理規(guī)則,...
    Sam_Lau閱讀 12,370評論 30 191
  • 本書說了些什么? 馬丁?塞利格曼是現(xiàn)代積極心理學之父,他一直致力于研究無助感。通過一些科學實驗和應用實踐,他發(fā)現(xiàn)無...
    聞人伊一閱讀 2,784評論 1 1
  • 滾滾紅塵,凝眸回首。 一簾煙雨的邂逅,一場花開的輪回。 多少情能在歲月中相守,多少愛能在時光里白頭。 感嘆描重了憂...
    辰海山Aaron閱讀 271評論 0 0

友情鏈接更多精彩內容