在前几篇文章中讲述了如何使用vs自带的内存泄漏检测功能,实现起来很简单,也很实用,但却不强大。今天我给大家介绍一种新的内存泄漏检测方法,通过外接工具检测内存泄漏。
VLD工具概述
Visual Leak Detector(VLD)是一款用于Visual C++的免费的内存泄露检测工具。他的特点有:可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在文件及行号; 可以得到泄露内存的完整数据; 可以设置内存泄露报告的级别;并且是开源免费的。
VLD的使用
解压并安装vld工具之后,在安装目录先有vld.h, vldapi.h, vld.lib, vldmt.lib, vldmtdll.lib, dbghelp.dll等文件。将.h文件拷贝到Visual C++的默认include目录下,将.lib文件拷贝到Visual C++的默认lib目录下,将dbghelp.dll、vld_x86.dll拷贝到你的程序的运行目录下,便安装完成了 ,接下来需要你在自己的工程中加入vld头文件,并编译程序即可。
1、如果是mfc程序可以在stdafx.h文件中加入(其他dll工程中同样在stdafx.h文件中加入以下语句)
#include "vld.h"
包含vld头文件即可,注意:尽量放在其他头文件之前,不然可能会编译不过。
2、非mfc程序在包含入口函数的.cpp文件中包含vld.h就可以了。
现在把你的程序重新编译一下,在debug下调试,并正常退出程序,在vs的输出窗口即可看到vld内存泄漏检测的结果。
VLD下载地址