C++内存泄露检测

C++内存泄露检测

目前做的项目中,遇到了C++内存泄露的问题,很严重。项目中相机每秒采集30张图片,每张图片为1024*768的BMP格式,大概有2M多,一秒就泄露60M多….这个问题太恐怖了,自己也看不出来哪里有问题,但肯定是申请了图片空间没有释放导致的。其中调试的时候使用了Visual Leak Detector软件,相当专业~

1.   安装

从网上下载Visual Leak Detector的最新版本2.2.3版,网址上也有安装和使用说明。

网址为:http://www.cr173.com/soft/44735.html

下载之后,解压安装,安装的时候会提示要不要将它加入系统的环境变量中,或者以后用户手动添加,选择是。

2.   配置

1)        打开VS2008,Tools->Options->Projects and Solutions->VC++ Directories

2)        在右侧中,在Platform中选择与自己系统或者IDE相符的位数,我选了Win 32

3)        在Show directories for中,选择 Include files,然后将刚刚的安装目录中的Include目录添加上去,C:\Program Files (x86)\Visual Leak Detector\include

4)        在Show directories for中,选择 Library files, 然后将刚刚的安装目录中的lib目录添加上去,32位的话,添加C:\Program Files (x86)\Visual Leak Detector\lib\Win32,64位的话,添加C:\ProgramFiles (x86)\Visual Leak Detector\lib\Win64

5)        点击OK,保存配置。

3.   使用

注:在DEBUG模式下才有效的.

         使用的时候,只需要在工程中添加#include"vld.h" 就可以了。

4.   实例

#include <stdio.h>

#include "vld.h"

 

void qing()

{

       char*pBuf = new char[200];

}

int main()

{

       qing();

return 0;

}

5.   输出

'qing.exe': Loaded 'C:\Documents andSettings\Administrator\My Documents\Visual Studio2008\Projects\qing\Debug\qing.exe', Symbols loaded.

'qing.exe': Loaded'C:\WINDOWS\SysWOW64\kernel32.dll'

'qing.exe': Unloaded 'C:\WINDOWS\SysWOW64\kernel32.dll'

'qing.exe': Loaded'C:\WINDOWS\SysWOW64\ntdll.dll'

'qing.exe': Loaded'C:\WINDOWS\SysWOW64\kernel32.dll'

'qing.exe': Loaded 'C:\Program Files(x86)\Visual Leak Detector\bin\Win32\vld_x86.dll'

'qing.exe': Loaded 'C:\WINDOWS\SysWOW64\advapi32.dll'

'qing.exe': Loaded'C:\WINDOWS\SysWOW64\rpcrt4.dll'

'qing.exe': Loaded 'C:\Program Files(x86)\Visual Leak Detector\bin\Win32\dbghelp.dll'

'qing.exe': Loaded'C:\WINDOWS\SysWOW64\msvcrt.dll'

'qing.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\msvcr90d.dll',Symbols loaded.

Visual Leak Detector Version 2.2.3installed.

WARNING: Visual Leak Detector detectedmemory leaks!

---------- Block 1 at 0x006C5C88: 200 bytes ----------

 Call Stack:

   c:\documents and settings\administrator\my documents\visual studio2008\projects\qing\qing\text.cpp (6): qing.exe!qing +0xA bytes

   c:\documents and settings\administrator\my documents\visual studio2008\projects\qing\qing\text.cpp (11): qing.exe!main

   f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (582):qing.exe!__tmainCRTStartup + 0x19 bytes

   f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (399):qing.exe!mainCRTStartup

   0x7D4E9982 (File and line number not available):kernel32.dll!BaseProcessInitPostImport + 0x8D bytes

 Data:

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CDCD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........

   CD CD CD CD    CD CD CD CD                                   ................

 

 

Visual Leak Detector detected 1 memory leak(236 bytes).

Largest number used: 236 bytes.

Total allocations: 236 bytes.

Visual Leak Detector is now exiting.

The program '[944] qing.exe: Native' hasexited with code 0 (0x0).

 

上面红色标记的200意思是泄露了200个字节,在哪个CPP的哪一行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值