【Visual Leak Detector】使用注意事项

说明

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


1. 官网文档

可以在 Using-Visual-Leak-Detector 官方文档里看到如何使用 VLD。

2. 注意事项

v2.5.1 版本为例,使用时有以下几点需注意。

  • 只要在项目的其中一个文件中 #include "vld.h" 就够了,这个文件可以是 main 函数所在文件,也可以是其他依赖源码所在文件。多个文件包含其实也没什么影响,但可能不便于后期的代码维护。
  • 一般情况下,只要确保头文件 vld.h 是在预编译头文件(最典型的比如 stdafx.h)之后包含即可,相对于其他头文件来说,include 的顺序没什么影响。但当 stdafx.h 文件中有 #include <afxwin.h> 时,就需将 #include "vld.h" 放在 stdafx.h 文件里面,且要放在 #include <afxwin.h> 的前面,不然泄漏检测功能无法正常使用。
  • 如果要检测某个 DLL 动态链接库是否有内存泄露,最好的方法是在该 DLL 的源代码里面包含 vld.h 后重新打包,然后使用新生成的 DLL 库。另一种方法是修改配置文件 vld.ini 文件中的配置项 ForceIncludeModules,将要检测的 DLL 库名称写在等号右边,具体操作可见本人另一篇博客 配置项 ForceIncludeModules,但根据配置文件中的相关注释,ForceIncludeModules 功能开启后程序有崩溃的风险,因此第二种方法需慎用。