C/C++程序内存泄漏检测
来源:互联网 发布:pca分析软件 编辑:程序博客网 时间:2024/06/06 03:36
C/C++程序内存泄漏检测
1. 包含头文件和定义:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
如果定义了_CRTDBG_MAP_ALLOC,打印出来的是文件名和行数等更加直观的信息。
2. 方法一
在程序入口写几个语句:
int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
_CrtSetDbgFlag( tmpFlag );
程序退出时,如果发现有内存泄漏,会自动在DEBUG OUTPUT窗口和DebugView中输出内存泄漏信息。
3. 方法二
在程序任何地方用以下语句:
_CrtDumpMemoryLeaks();
随时检测打印内存泄漏信息,如果有的话。不过此用法有个局限,对于一些全局函数,如果初始化时申请了内存,到程序结束时候才释放,此函数会一直把新申请的内存当作泄漏来对待。
4. 方法三
使用_CrtMemCheckpoint方法,在某段程序中统计泄漏信息。如下:
_CrtMemState s1, s2, s3;
_CrtMemCheckpoint( &s1 );
// 程序段1:DO SOMETHING
_CrtMemCheckpoint( &s2 );
if ( _CrtMemDifference( &s3, &s1, &s2) )
_CrtMemDumpStatistics( &s3 );
可以统计程序段1中是否发生了内存泄漏。
- C/C++程序内存泄漏检测
- C/C++程序内存泄漏检测
- (转贴)C/C++程序内存泄漏检测
- C/C++程序内存泄漏检测
- C/C++程序内存泄漏检测
- C/C++程序内存泄漏检测
- 【C/C++】C/C++内存泄漏检测
- C代码检测内存泄漏
- c/c++内存泄漏检测
- C/C++检测内存泄漏
- C语言内存泄漏检测
- C/C++内存泄漏检测
- C/C++内存泄漏检测
- JNI程序如何检测C代码的内存泄漏
- C/C++内存泄漏及检测
- C/C++检测内存泄漏的方法
- C/C++内存泄漏及检测
- C/C++内存泄漏及检测
- 关于在Windows server 2008下安装应用程序的解决方案
- class和struct做类型定义时的区别
- 新手哦
- 汇编工具下载
- 体验windows server2008服务器操作系统
- C/C++程序内存泄漏检测
- 和sun程序员的一次聊天
- J2ME中多线程代码实战
- 美国大学三邀重庆聋哑女读研[转]
- Java操作XML文件 dom 篇
- 解决windows 2003下安装卡巴斯基
- 编程初学者请教个问题
- 七大搜索引擎的博客提交入口
- 检查点、里程碑和基线