Visual Leak Detector是一款免费的、健全的、开源的Visual C++内存泄露检测系统。相比Visual C++自带的内存检测机制,Visual Leak Detector可以显示导致内存泄露的完整内存分配调用堆栈。
Visual Leak Detector其实是基于vc自带的检测工具工作的,虽然知道原理的情况下我们自己也可以做出一个功能类似的东西来。但是又何必再造车轮呢?vld本身是开源项目,想要知道其实现的童鞋可以看看它的代码哦。大致上似乎是基于VC++DEBUGER和CRT库提供的检测和定位内存泄漏的工具,不过作为一个有历史的开源项目,其功能自然没有简单到这种程度。
vld简单易用,文档也很丰富,对于内存泄露的具体位置也能以调用堆栈的形式详细的显示出来。在代码上的变动只需要简单的加上#include 就可以了。集成起来也很方便,与其他的第三方库没有区别,而且它本身只工作在debug模式,release的时候根本就不会编译,相当之便利。不知道如何配置的童鞋可以参考下面的来做,注意更改成自己的vld安装路径就好:
下载Visual Leak Detector,当前版本2.4,在Visual C++ IDE的"工具"→"选项"→"项目和解决方案"→"VC++ 目录","包含文件"增加VLD的"\include"路径,"库文件"增加VLD的"\lib\Win32"路径,另外动态库"\bin\Win32"路径在安装时已经添加到环境变量里面了,若是未添加,则需要手动拷贝"\bin\Win32"下的文件到工程Debug目录。下