使用VLD進行記憶體洩漏檢測(release + debug)
VLD(Visual Leak Detector)是一款用於VisualC++的免費記憶體洩漏檢查工具。功能:
1) 可以得到記憶體洩漏點的呼叫堆疊,還可以得到其所在的檔案及行號;
2) 可以得到洩漏記憶體的完整資料;
3) 惡意設定記憶體洩漏報告的級別;
4) 它以動態庫的形式提供,無需編譯原始碼,只需要很小的改動程式;
5) 原始碼使用GNU許可釋出,並有詳細的文件及其註釋。
VLD網址:http://vld.codeplex.com/
使用方法:
debug:在自己的工程中任意的原始檔中包含<vld.h>即可,編譯完的可執行程式並帶有VLD內在檢測功能
release:
1,同Debug版本在VC中配置好VLD的相關資訊
2, 拷貝Visual Leak Detector\bin\Win32目錄下所有的檔案和vld.ini到工程目標路徑下
3,在程式入口處的cpp中,定義強制檢測巨集和包含vld標頭檔案
#define VLD_FORCE_ENABLE
#include "vld.h"
4,在程式啟動和退出時,分別增加以下函式呼叫
{
...
VLDGlobalEnable();
VLDReportLeaks();
//some code...
VLDGlobalDisable();
}
5,增加別的檢測模組
以上配置後,預設情況下只會檢測主程式的模組,要想增加其他模組的記憶體洩露檢測,需要配置vld.ini檔案中的 ForceIncludeModules,多個模組用";"分隔,如:ForceIncludeModules = demo1.dll;demo2.dll
6,配置輸出方式
預設只會在除錯下的終端中列印記憶體洩露資訊,可配置vld.ini檔案中的ReportTo為both,這樣可以同時想終端和檔案中打 印資訊,如:ReportTo = both
關於VLD的配置檔案:
Vld的庫會檢查程式所執行的當前目錄是否存在vld.ini的配置檔案,如果有,則載入裡頭的配置進行記憶體檢測執行,如果沒有取預設的配置引數執行,我們可以手動將vld.ini的檔案拷貝到程式的執行目錄中即可。
關於vld.ini的幾個注意的引數:
1,VLD = on 總開關,是否啟用VLD功能,預設為yes
2,MaxDataDump = 256 用來顯示檢測到的內在洩露的塊的地址大小,預設256,其實就是顯示多少個byte的內容。
3,MaxTraceFrames = 64 設定VLD檢測到堆疊的最大層極,也就是frame的深度
4,ReportFile = xxx 設定VLD生成報告的位置和報告的檔名,預設為:.\memory_leak_report.txt,程式當前執行目錄中。
5,ReportTo = debugger 設定VLD生成報告的方式,debugger為在控制檯輸出VLD的報告資訊,file在指定目錄下生成報告檔案,both為即輸出也生成報告。如果你的程式為帶窗體的程式,需要設定為file或both.
相關文章
- 使用 Instruments 檢測記憶體洩漏記憶體
- iOS檢測記憶體洩漏iOS記憶體
- 如何檢測記憶體洩漏記憶體
- Visual C++ 2010 啟動記憶體洩漏檢測功能,VLD 記憶體洩漏檢查 都超簡單(2)C++記憶體
- JavaScript記憶體洩漏檢測工具JavaScript記憶體
- MFC 檢測記憶體洩漏的方法記憶體
- 檢測並排除記憶體洩漏 (轉)記憶體
- C++ 程式記憶體洩漏檢測方法C++記憶體
- C/C++記憶體洩漏及檢測C++記憶體
- VC++6.0中記憶體洩漏檢測C++記憶體
- Android檢測記憶體洩漏之leakcanaryAndroid記憶體
- 如何在 Linux 下檢測記憶體洩漏Linux記憶體
- iOS記憶體洩漏自動檢測工具PLeakSnifferiOS記憶體
- 記憶體洩漏記憶體
- 如何檢測記憶體洩漏——過載new和delete記憶體delete
- 請教 關於記憶體洩漏的檢測方法記憶體
- iOS 使用Instruments的Leaks工具進行記憶體洩漏分析iOS記憶體
- 分析記憶體洩漏和goroutine洩漏記憶體Go
- C++--問題27--如何檢測記憶體洩漏C++記憶體
- 怎麼用弱引用實現記憶體洩漏檢測記憶體
- js記憶體洩漏JS記憶體
- Java記憶體洩漏Java記憶體
- webView 記憶體洩漏WebView記憶體
- Javascript記憶體洩漏JavaScript記憶體
- vue使用中的記憶體洩漏Vue記憶體
- vs中檢測記憶體洩漏的方法記憶體
- Android 效能優化之記憶體洩漏檢測以及記憶體優化(上)Android優化記憶體
- Android 效能優化之記憶體洩漏檢測以及記憶體優化(下)Android優化記憶體
- Android 效能優化之記憶體洩漏檢測以及記憶體優化(中)Android優化記憶體
- 如何檢查Javascript中的記憶體洩漏JavaScript記憶體
- 急!請教用optimizeit檢測記憶體洩漏的問題?記憶體
- 使用Microsoft Visual C++來檢測和隔離記憶體洩漏 (轉)ROSC++記憶體
- 記憶體分析與記憶體洩漏定位記憶體
- 記憶體洩漏和記憶體溢位記憶體溢位
- valgrind 記憶體洩漏分析記憶體
- Android 記憶體洩漏Android記憶體
- Android記憶體洩漏Android記憶體
- 淺談記憶體洩漏記憶體