Visual Leak Detector是一款免費的、健全的、開源的Visual C++內存泄露檢測系統。相比Visual C++自帶的內存檢測機制,Visual Leak Detector可以顯示導致內存泄露的完整內存分配調用堆棧。
主頁地址:
http://vld.codeplex.com/
下載Visual Leak Detector,當前版本2.2.3,在Visual C++ IDE的"工具"→"選項"→"項目和解決方案"→"VC++ 目錄","包含文件"增加VLD的"\include"路徑,"庫文件"增加VLD的"\lib\Win32"路徑,另外動態庫"\bin\Win32"路徑在安裝時已經添加到環境變量里面了,若是未添加,則需要手動拷貝"\bin\Win32"下的文件到工程Debug目錄。下面記錄下使用方法:
1.新建一個Win32控制台項目;
2.添加代碼如下所示:
1 2 3 4 5 6 7 8 |
#include "stdafx.h" #include "vld.h" int _tmain(int argc, _TCHAR* argv[]) { char *pBuf = new char[200]; return 0; } |
3.在Debug模式下的“輸出”窗口,將有如下信息:

報告列出了內存泄露是在第幾塊,所在的地址,泄露的字節,調用的堆棧,內存內容。雙擊調用堆棧可以跳轉到所在行。
4.在Release模式下,不會鏈接Visual Leak Detector。
5.Visual Leak Detector有一些配置項,可以設置內存泄露報告的保存地(文件、調試器),拷貝"\Visual Leak Detector"路徑下的vld.ini文件到工程的Debug目錄下(在IDE運行的話,則需要拷貝到工程目錄下),修改以下項:
ReportFile = .\memory_leak_report.txt
ReportTo = both
ReportTo = both
直接雙擊Debug目錄下exe,結果如下圖所示:

文件內容跟“輸出”窗口的內容一樣。