简单内存泄漏检测方法 解决 Detected memory leaks! 问题

转载 2017年03月06日 11:13:09
转自:http://www.cppblog.com/oyrp/articles/102251.html

我的环境是: XP SP2 . VS2003

最近在一个项目中,程序退出后都出现内存泄漏:

Detected memory leaks!
Dumping objects ->
{98500} normal block at 0x05785AD0, 152 bytes long.
Data: << N       N x 7 > 3C AC 4E 10 00 00 00 00 BC A4 4E 10 78 B6 37 00
Object dump complete.
 

而且每次退出都是一样的.泄漏的内存块都是98500.

解决方法:

1. 在程序开始启动的地方(足够前的地方,只要在泄漏的内存分配的前面)使用代码:

_CrtSetBreakAlloc(98500); //98500为上面内存泄漏的块号.

2. 然后debug运行,程序自动断点在"内存块98500"分配的位置:

 

/* break into debugger at specific memory allocation */
if (_crtBreakAlloc != -1L && lRequest == _crtBreakAlloc)
_CrtDbgBreak();
 

 

3 .我们已经找到了泄漏的那块内存分配的底层操作的地方了(好拗口!).

这个时候我们利用 "调试" –> "退出" ,快捷键为:"Shift + F11" .

跳出当前函数..然后一直往"上"跳,边跳边查看调用栈.直到看到了自己写的代码,例如我的

std::ifstream* origStream = new std::ifstream();
 

4 .这个时候我已经可以判断 origStream 分配了内存,但是没有合理释放.处理后再次运行就没有出现内存泄漏了.

5.最后,记得把_CrtSetBreakAlloc(98500); 这句话删除掉,不然每次都断点,岂不是烦死..

简单内存泄漏检测方法,解决Detected memory leaks!问题 .

工作环境:WIN7,VS2005: 最近一个项目中,程序退出后,每次都出现内存泄漏,每次退出的时候泄露的内存块都是1654,1650。 Detected memory leaks! Dump...
  • wyt4455
  • wyt4455
  • 2013年03月19日 15:53
  • 529

MFC学习(26)简单内存泄漏检测方法 解决 Detected memory leaks! 问题

最近在一个项目中,程序退出后都出现内存泄漏: Detected memory leaks! Dumping objects -> {98500} normal block at 0x05785AD0...

简单内存泄漏检测方法,解决Detected memory leaks!问题

我的环境是: XP SP2 . VS2003 最近在一个项目中,程序退出后都出现内存泄漏: Detected memory leaks! Dumping objects -> {98500} ...
  • wishfly
  • wishfly
  • 2015年10月17日 11:59
  • 383

简单内存泄漏检测方法 解决 Detected memory leaks! 问题

jackyhwei 发布于 2011-11-14 09:41 点击: 次  来自:hi.baidu.com/cr0_3 关于内存泄漏检测,有一个Visual Leak Dete...

简单内存泄漏检测方法 解决 Detected memory leaks

简单内存泄漏检测方法 解决 Detected memory leaks!  (2010-07-06 14:16:07) 转载▼ 标签:  检测内存泄露   ...

Detected memory leaks!内存泄漏,溢出,内存越界问题分析

应用程序发生 Detected memory leaks!内存泄漏 一直程序员面对的是一个很痛苦的问题,要查出泄漏的地方有时候需要大半天甚至更长时间。这里讲讲我的一些查找内存泄漏以及避免内存泄漏的一些...

xcode里面使用Memory Leaks和Instruments检测内存泄漏

教程截图: Leaks和Instruments教程【检测内存泄露】" style="margin:0px; padding:0px; border:0px; list-style:none"> ...
  • yuanya
  • yuanya
  • 2013年05月12日 00:24
  • 643

使用AsyncTask防止Memory Leaks(内存泄漏)的正确姿势

1:合理的使用context–比如我们常使用的Toast,Service,最好使用getApplicationContext(),因为这些在activity结束的时候可能仍在运行 下图展示了一些场景...

使用 Eclipse Memory Analyzer 检测内存泄漏问题

转自 http://blog.csdn.net/moneyice/article/details/2644503 本文是关于在开发Talend RCP 过程中碰到一个内存溢出问题的解决方...

使用 Eclipse Memory Analyzer 检测内存泄漏问题

本文是关于在开发Talend RCP 过程中碰到一个内存溢出问题的解决方案。使用的检测软件为Eclipse Memory Analyzer (http://www.eclipse.org/mat/)...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单内存泄漏检测方法 解决 Detected memory leaks! 问题
举报原因:
原因补充:

(最多只允许输入30个字)