目录
Visual Leak Detector 2.5.1 (VLD)是一个小巧内存检测工具,是为Visual C++用户设计的。其特色为:
Visual Leak Detector 官网下载地址:Visual Leak Detector | Enhanced Memory Leak Detection for Visual C++,点击 Download Installer 绿色按钮可下载工具的安装程序 vld-2.5.1-setup.exe。
也可去 Git 仓库 releases 界面 下载安装程序 vld-2.5.1-setup.exe。
还可以使用国内的网络资源下载:百度网盘-vld-2.5.1-setup.exe。
点击next

继续点击next


勾选三个,然后点击next

确认自己的设置,确认一下,需要修改则点击Back返回修改,否则点击install进行安装。
注意:安装前需要关闭Visual Studio

安装完成后的目录结构:

找到Visual Leak Detector的安装目录,复制路径,把路径配置到环境变量中。Vld支持32位和64位,以防万一我们都配置上。

打开vs,我这里使用的是vs2017,根据自己版本进行配置。
选择主工程,右键打开属性界面,找到“配置属性-VC++目录-包含目录/引用目录”
配置Visual Leak Detector的lib和include目录,如图所示。

找到“配置属性-C/C++-预处理器-预处理器定义“,点击”编辑“进入编辑框,输入【_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING】,点击确定保存,如图所示


VLD默认在程序结束后生成报告,默认生成得报告显示在调试窗口和输出窗口中,在“配置属性-链接器-调试-生成调试信息”下拉选项框中选择【生成经过优化以共享和发布的调试信息(/DEBUG:FULL)】,如图所示


使用的时候需要把以下几个选中的文件复制到工程中,如图所示

3.2说到可以在调试窗口和输出窗口显示调试信息,但也可以让调试信息输出到文件中,看的时候更加清晰明了。
上图中的vld.ini便可以进行配置。
ReportTo默认为debugger,意思是输出到调试窗口,改为file就输出到文件中了,通过ReportFile配置文件生成得位置,如图所示

- 在对于debug下文件中添加#include "vld.h"与#pragma comment(lib, "vld.lib")便可使用VLD了
- 如果是release版本,还需要添加在#include "vld.h"前加一条#define VLD_FORCE_ENABLE,否则将不能进行内存泄漏的检测
可以用以下代码进行测试:
- #include
- #include
- #include
- #include "vld.h"
-
- #pragma comment(lib, "vld.lib")
-
- using namespace std;
-
- int main()
- {
- cout << "start" << endl;
- static int *a = new int;
- int *arr = new int[10];
- int aaa = 10;
- //delete a;
- cout << "end" << endl;
-
- return 0;
- }
编译完成点击F5启动进程,如图所示

查看报告,可以看到有几处内存泄露,并且定位到内存泄露点的代码行,如图所示:

进入代码中查看,可以看到这两行没有被释放

手动释放一下再测试,可以看到已经没有内存泄露的地方了:
