说明
使用 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
功能开启后程序有崩溃的风险,因此第二种方法需慎用。
- 注意事项 Detector 事项 Visual Leak注意事项detector事项visual detector visual leak vld detector方式visual leak skipheapfreeleaks detector visual leak 源码detector visual leak detector visual leak 2015 skipcrtstartupleaks detector visual leak forceincludemodulesmd detector visual leak stackwalkmethod detector visual leak detector版本visual leak