【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
功能开启后程序有崩溃的风险,因此第二种方法需慎用。