?
??
?Windows下的应用程序在做内存泄漏测试时,无需重新编译的检测工具很少,只有(DR. Memory, UMDH等)少数软件,而且提示较不明确。而VLD(Visual LeakDetector)虽然需要重新编译,但是仅需增加一个include文件,且仅在debug模式下工作,对项目影响较小,可以考虑。
Visual Leak Detector is a free, robust, open-source memory leak detection system for Visual C++.
下面说说VLD的特点:
1) 可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在的文件及行号;
2) 可以得到泄漏内存的完整数据;
3) 可以设置内存泄漏报告的级别;
4) 它以动态库的形式提供,无需编译源代码,只需要很小的改动程序;
5) 源代码使用GNU许可发布,并有详细的文档及其注释
与VS自带的工具比较:The main difference between the CRT Debug Library and VLD, is that Visual Leak Detector shows you the complete callstack used for memory allocation has led to the leak.
#ifdef?_DEBUG
#include?"vld.h"
#endif
修改vld安装目录下的vld.ini
vld配置文件ReportFile = memory_leak_report.txt
ReportTo = both
?
注意: 1. 仅支持Visual Studio 2008-2015?