Visual Leak Detector 2.2.3 Visual C++記憶體檢測工具
阿新 • • 發佈:2019-02-19
Visual Leak Detector是一款免費的、健全的、開源的Visual C++記憶體洩露檢測系統。相比Visual C++自帶的記憶體檢測機制,Visual Leak Detector可以顯示導致記憶體洩露的完整記憶體分配呼叫堆疊。
下載Visual Leak Detector,當前版本2.2.3,在Visual C++ IDE的"工具"→"選項"→"專案和解決方案"→"VC++ 目錄","包含檔案"增加VLD的"\include"路徑,"庫檔案"增加VLD的"\lib\Win32"路徑,另外動態庫"\bin\Win32"路徑在安裝時已經新增到環境變數裡面了,若是未新增,則需要手動拷貝"\bin\Win32"下的檔案到工程Debug目錄。下面記錄下使用方法:
1.新建一個Win32控制檯專案;
2.新增程式碼如下所示:
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 直接雙擊Debug目錄下exe,結果如下圖所示:
檔案內容跟“輸出”視窗的內容一樣。
1 2 3 4 5 6 7 8 |
#include "stdafx.h" #include "vld.h" int _tmain(int argc, _TCHAR* argv[]) { char return 0; } |
報告列出了記憶體洩露是在第幾塊,所在的地址,洩露的位元組,呼叫的堆疊,記憶體內容。雙擊呼叫堆疊可以跳轉到所在行。 4.在Release模式下,不會連結Visual Leak Detector。 5.Visual Leak Detector有一些配置項,可以設定記憶體洩露報告的儲存地(檔案、偵錯程式),拷貝"\Visual Leak Detector"路徑下的vld.ini檔案到工程的Debug目錄下(在IDE執行的話,則需要拷貝到工程目錄下),修改以下項:
ReportFile =
ReportTo = both 直接雙擊Debug目錄下exe,結果如下圖所示:
檔案內容跟“輸出”視窗的內容一樣。