內存泄露檢測方法收集

1、檢測內存泄露的方法:  http://blog.csdn.net/skyremember/article/details/2941038

有具體的錯誤解釋

2、C++:VS2005檢查內存泄露的簡單方法 - 鄭文亮  http://www.xue5.com/Developer/C++/656375.html

顯示 #define new DEBUG_NEW方法,比較具體

 3、使用_CrtDumpMemoryLeaks()查內存泄露的一些問題

http://blog.sina.com.cn/s/blog_4d7d5ba501019ca9.html

4、VLD使用 http://hi.baidu.com/pdaliu/item/5b70bfb8948e9bea4fc7fda6 

  vs2010使用vld檢測內存泄露  http://blog.csdn.net/wolfking_2009/article/details/8995046

 Visual Leak Detector(vld)無法顯示內存泄露文件名與行號  http://blog.csdn.net/xiexievv/article/details/8221327

5、vs中檢測內存泄漏的方法  http://blog.csdn.net/windows_nt/article/details/8652191

  共三種方法

6、在vc2008中用_crtBreakAlloc調試內存泄漏 http://blog.chinaunix.net/uid-21375345-id-3290446.html

  知道固定的內存編號可使用此法,如:Dumping objects ->
    {858} normal block at 0x003ED290, 12 bytes long。{}中的858即內存編號

具體自己vs2010調試實現:

    首先確定自己的程序使用的是哪個C運行庫,方法是程序Propertise -> C/C++ -> Code Generation -> Runtime Library選項,若爲Multi-threaded Debug(/MTd),則爲靜態鏈接,若爲Multi-threaded Debug DLL(/MDd),則爲動態鏈接。

    然後按F11啓動程序,程序會停在入口點。此時調出Watch窗口,

    靜態鏈接 在name項中輸入_crtBreakAlloc,在value項中輸入你要定位的內存分配編號;

    動態鏈接 在name項中輸入{,,msvcr100d.dll}_crtBreakAlloc,在value項中輸入內存分配號。注意msvcr90d.dll是vc2008環境使用的運行庫dll,若你用的是其他版本vc,請換成對應版本的dll。

    現在按F5運行,程序就會自動定位到你要調試的內存分配語句,這時候看call stack的信息會很有幫助。

 

7、內存泄漏及檢測(英文)  http://blog.csdn.net/mikefeng/article/details/1765613

其中包含造成內存泄露的原因類型


 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章