iOS-xcode記憶體泄露 檢查靜態/動態

來源:互聯網
上載者:User

靜態:

在project-setting中找到 “Run Static Analyzer” 鍵,然後把值修改為“YES”.這樣在編碼的時候,xcode就可以自動為我們檢查記憶體泄露了.

動態:

Xcode 4.2找了半天,才找到Instruments在哪裡:Product-》profile 

EXC_BAD_ACCESS錯誤,我通常建議:

  1.在可執行選項中設定NSZombieEnabled參數,這有時會幫縮小問題的範圍;

  2.運行apple的記憶體偵查工具,如 Leaks ,以便尋找記憶體問題;

  3設定一個斷點,單步運行代碼,直到你找到引起崩潰的位置;

  4.注釋代碼,直到不崩潰為止,然後再從後往前尋找錯誤;

  現在讓我們從第一條開始實驗

    NSZombieEnabled選項對於崩潰毫無辦法,所以你完全可以放棄抵抗。


 當你使用一個已經被銷毀的對象,NSZombieEnabled會標誌一個警告,所以NSZombieEnabled只是一個flag。這是一個良好的開端,因為大多數崩潰的原因都是使用了已經銷毀的對象。

  按照以下設定:

點擊OK, 重新運行app,隨便操作下使程式崩潰。 查看下consolelog你就會看到類似如下資訊:

2011-02-03 12:07:44.778 XXXX ***-[XXXXX:]: message sent to deallocated instance ...2.記憶體流失最簡單的辦法就是:(快速鍵:command+shift+b)你會看到如:怎麼修改,自己慢慢按提示一步一步改不幸的是,你不能依靠以上方法找出一切問題。我們還得使用一個強大的自動化工具來協助你檢查程式是否有記憶體流失– the Leaks Instrument。接下來就是代開Leaks Instrument工具,如:選中Leaks,點擊Profile,出現以下試圖,點擊stop(紅色的那個),設定調試參數:(選擇Leaks,選擇Call Tree, 選中如的的3個複選框),然後點擊(Record)按鈕 重啟,淡紅色那條就代表記憶體流失了,下面兩個不同的函數就表示存在記憶體流失的函數, 雙擊一個函數的名字,它會帶你直接到存在記憶體泄露的這行代碼。這可以給你一個很好的錯誤位置提示,如果你查看代碼並加以思考,你應該能夠找出問題所在並解決它。

  所以,為什麼不看看代碼,並且看看你是否能找出問題所在並修正嗎?一旦你作出修改,並且能夠無錯誤提示的跑Leaks。如果通過,表示你完成了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.