1、前言
本週在工做中接觸了VLD(Visual Leak Detector)工具,該工具是一款在Visual Studio C++中使用的開源的檢測內存泄露軟件,本文從編譯VLD開始記錄該工具的使用方法。git
2、下載VLD
VLD的倉庫連接:https://github.com/KindDragon/vld 下載後目錄以下: github
3、編譯VLD
- 使用Visual Studio 2015打開vld_vs14.sln,打開工程以下:
- 編譯其中的「vld」工程,若編譯Win32版本,則會在vld/src/Win32/Debug-v140目錄下生成vld.lib;若編譯x64版本,則會在vld\src\bin\x64\Debug-v140目錄下生成vld.lib。
4、使用VLD檢測內存泄漏
-
新建C++項目:Project。工具
-
在Project項目的屬性頁包含目錄vld/src,以下圖:
測試
-
在Project項目的屬性頁包含vld庫目錄,例如此處使用x64版本的庫目錄:vld\src\bin\x64\Debug-v140。
url
-
在Project項目的屬性頁添加依賴項vld.lib,以下圖:
.net
-
將\vld\src\bin\x64\Debug-v140\vld_x64.dll拷貝到Project工程的exe可執行文件所在的目錄下。code
-
將目錄vld\setup\dbghelp\x64目錄下的dbghelp.dll和Microsoft.DTfW.DHL.manifest文件拷貝到Project工程的exe可執行文件所在的目錄下,以下圖:
blog
-
測試程序:圖片
#include "vld.h" //測試程序的內存泄露只需包含頭文件vld.h #include "stdio.h" #include <stdlib.h> int main() { char * str = (char*)malloc(10); //free(str); return 0; }
運行結果以下圖:內存
若把 free(str); 代碼的註釋取消,再編譯運行,結果以下: