【Visual Leak Detector】简介

说明

使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。同系列文章目录可见 《内存泄漏检测工具》目录


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/

Visual Leak Detector 旧官网:https://vld.codeplex.com,旧的托管在 CodePlex 上,但微软已经关闭了 CodePlex,网站已经打不开了。


3. 工具的帮助文档

Visual Leak Detector 在线帮助文档:https://github.com/KindDragon/vld/wiki

Dan Moulding 旧版本的使用说明:https://www.codeproject.com/Articles/9815/Visual-Leak-Detector-Enhanced-Memory-Leak-Detectio,里面包含对 VLD 检测原理的简要介绍。


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

版本 v2.5.1 只支持到 VS2015,有人对此做了升级,使其能支持到 VS2019,详见:https://github.com/oneiric/vld