1. 工具简介
Visual Leak Detector 简称 VLD,是 Windows 平台下用于 C/C++ 代码内存泄漏检测的开源工具,使用起来比较简单,配置好环境后包含头文件,就可以在运行时自动检测是否存在内存泄漏,并在指定位置(控制台或者文本文件)输出检测报告。该工具最初由 Dan Moulding 开发,但是后面 2.0 版本的特性都由 Arkadiy Shapkin 实现,在版本迭代历史中看到,最新的版本是 2017 年 10 月 17 日发布的 v2.5.1,开源遵循 LGPL-2.1 协议,在 Visual Studio Marketplace 中也有对 VLD 的一些介绍。该工具原则上只能在 MSVC 编译器、Debug 模式下使用。相比较于 Visual C++ 内置的内存泄漏检测工具,它有以下五大亮点:
- 可以输出内存泄漏点的调用堆栈,当符号信息完整时,还可以输出造成泄漏的代码所在文件及行号;
- 能检测出所在进程内的绝大多数内存泄漏,包括 COM-based leaks 和纯 Win32/Win64 下的 heap-based leaks;
- 可以手动设置不需检测的模块,比如 DLL 动态库或者主函数 EXE;
- 可以以 ASCII 码和十六进制的形式输出泄漏内存块中的全部数据;
- 可定制内存泄漏检测报告:可以设置将报告输出到控制台或者写入到指定的文本文件中、还可以设置检测报告的详细等级。
2. 工具的官网链接
Visual Leak Detector 官网:https://kinddragon.github.io/vld/。
3. 工具的帮助文档
Visual Leak Detector 在线帮助文档:https://github.com/KindDragon/vld/wiki。
4. 工具的下载地址
Visual Leak Detector 官网下载地址:https://kinddragon.github.io/vld/, 点击 Download Installer 绿色按钮可下载工具的安装程序 vld-2.5.1-setup.exe。也可去 Git 仓库 releases 界面 下载安装程序或源码。
5. 工具的 Git 地址
Visual Leak Detector 的 GitHub 地址:https://github.com/KindDragon/vld。