DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

Visual C++内存泄露检测VLD工具使用说明

一.        VLD工具概述

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

 

二.        VLD下载

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

本文后附有vld1.0的工具包,下载解包后就可使用。

 

三.        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"

 

void Function1(char *p)

{

       char *pTmp = new char[255];

       memset(pTmp, 0x0, 255);

       strncpy(pTmp, p, 255);

       //delete pTmp;

}

 

int Function2(void)

{

       char acString[] = "this is test!";

       Function1(acString);

       return 1;

}

 

void Function3(void)

{

       Function2();

}

int main(void)

{

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

 

       Function3();

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

       return 1;

}

 

2Vld1.0工具包

 

 

3.关于linux的内存泄露,可以使用valgrind工具进行检测。

posted on   DoubleLi  阅读(33985)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示