定位程序内存泄露的位置
2013-07-26 16:35
806 查看
转自:http://baitai.iteye.com/blog/1020355
1. 头文件加入:
#include <windows.h>
#define _CRTDBG_MAP_ALLOC
#define USING_LEAK_CHECK 1
#ifndef _crtdbg_map_alloc
#define _crtdbg_map_alloc
#endif
#include <stdlib.h>
#if USING_LEAK_CHECK
#include <crtdbg.h>
#endif
#include <stdio.h>
具体需要测试的地方插入
#if USING_LEAK_CHECK
_CrtDumpMemoryLeaks();
#endif
打印此处之前的内存申请情况
2. 在.cpp文件中加入:
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
#endif
可以看到new分配内存情况。
在网上找了很久,都没有成功输出程序内存泄露的位置。后来按照这个写,一开始也没有成功,老是报如下错误:
error C2661: “CObject::operator new” : 没有重载函数接受 4 个参数
后来在http://bbs.csdn.net/topics/200016093这篇帖子的启发下,
将 #define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
改成 #define
new DEBUG_NEW
就可以了
thank god!
对于如何定位程序内存泄露的位置,很多人推荐BoundsChecker这个工具,没有用过,先留下记号,有时间研究研究。
http://blog.csdn.net/cwzmb/article/details/3506902
1. 头文件加入:
#include <windows.h>
#define _CRTDBG_MAP_ALLOC
#define USING_LEAK_CHECK 1
#ifndef _crtdbg_map_alloc
#define _crtdbg_map_alloc
#endif
#include <stdlib.h>
#if USING_LEAK_CHECK
#include <crtdbg.h>
#endif
#include <stdio.h>
具体需要测试的地方插入
#if USING_LEAK_CHECK
_CrtDumpMemoryLeaks();
#endif
打印此处之前的内存申请情况
2. 在.cpp文件中加入:
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
#endif
可以看到new分配内存情况。
在网上找了很久,都没有成功输出程序内存泄露的位置。后来按照这个写,一开始也没有成功,老是报如下错误:
error C2661: “CObject::operator new” : 没有重载函数接受 4 个参数
后来在http://bbs.csdn.net/topics/200016093这篇帖子的启发下,
将 #define new new(_NORMAL_BLOCK, __FILE__, __LINE__)
改成 #define
new DEBUG_NEW
就可以了
thank god!
对于如何定位程序内存泄露的位置,很多人推荐BoundsChecker这个工具,没有用过,先留下记号,有时间研究研究。
http://blog.csdn.net/cwzmb/article/details/3506902
相关文章推荐
- 定位C++内存泄露位置
- Linux环境定位C程序内存泄露以及非法访问的方法
- android 快速定位内存泄露位置技巧
- VS 查看是否有内存泄露的方法 定位位置
- 最近在SPARK上定位的几个内存泄露问题总结
- android 学习笔记(五)调试相关 5.6 AndroidApp定位和规避内存泄露方法研究
- 强大的windbg定位内存泄露,两句命令搞定!
- valgrind检测linux程序内存泄露
- 微信小程序---系统信息-位置信息-定位信息
- 如何定位Release 版本中程序崩溃的位置 ---利用map文件 拦截windows崩溃函数
- 最近在SPARK上定位的几个内存泄露问题总结
- 结合drwtsn32.log和.Map文件的查看、定位程序错误位置
- 怎样检查内存泄露的位置
- 关闭程序后,子线程未正确退出引出的内存泄露问题
- 定位C程序内存错误
- 一种定位内存泄露的方法(Linux)
- Wince内存泄露检测工具Application Verifier的使用和如何快速定位泄露语句
- 程序模式VS2010 C++最简单的检查内存泄露
- Java内存泄露的问题调查定位
- Net Memory Profiler 分析.Net程序内存泄露