内存泄露检测—VLD工具

一.VLD工具概述

Visual Leak Detector(VLD)是一款用于Visual C++的免费的内存泄露检测工具。他的特点有:可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在文件及行号;可以得到泄露内存的完整数据;可以设置内存泄露报告的级别;并且是开源免费的。

二.VLD下载

http://www.codeproject.com/tools/visualleakdetector.asp

本文后附有vld1.0的工具包,下载解包后就可使用。不过网上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.h, vldapi.h, vld.lib, vldmt.lib, vldmtdll.lib, dbghelp.dll等文件。将.h文件和.lib文件拷贝到你要检测的工程文件所在的目录里(只针对此工程),将dbghelp.dll拷贝到你的程序的运行目录下。就完成安装了。

四.VLD使用

在包含入口函数的.cpp文件中包含vld.h就可以了。下面以一个例子进行说明(源程序见附录):

1.加入头文件:

2.编译:

3.在debug方式下运行:查看VC的输出信息:

内存泄露所在的位置


4.查看VC输出信息:

"WARNING: Visual Leak Detector detected meory leaks!"


5.如果没有内存泄露,此输出的信息为:

"No memory leaks detected"

五.附录

1.测试用文件

#include"vld.h"

#include"iostream.h"

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

voidFunction1(char*p)

{

char *pTmp = new char[255];

memset(pTmp, 0x0, 255);

strncpy(pTmp,p, 255);

//delete pTmp;

}

intFunction2(void)

{

characString[] ="this is test!";

Function1(acString);

return1;

}

voidFunction3(void)

{

Function2();

}

intmain(void)

{

cout<<"begin.............."<<endl;

Function3();

cout<<"end................"<<endl;

return1;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值