MFC查内存泄漏方法

摘要:
此方法仅用于固定内存地址的泄漏问题(如果地址不固定,则需要多次尝试,很难找到,或者只能通过主动分析找到)。当MFC项目调试遇到关闭的项目时,输出视图显示内存泄漏,如下图所示:在应用程序中,以下接口添加到InitInstance()中:_ CrtSetBreakAlloc(34719);//测试内存泄漏。该参数是上图中泄漏的地址。如下图所示,再次启动程序并触发断点,如下图所示:单击中断按钮,调用堆栈视图

此方法仅使用于固定内存地址的泄漏问题(如果地址不固定,需要多次尝试,会比较难找,或者是主动分析才能找得到)

工作中MFC工程调试遇到关闭工程时,输出视图出现内存泄漏,如下图所示:

MFC查内存泄漏方法第1张

在theApp.InitInstance()中加上如下接口:
_CrtSetBreakAlloc(34719); // 测试内存泄漏,参数是上图中泄漏的地址

如下图所示

MFC查内存泄漏方法第2张

 再次启动程序,触发断点,如下图:

MFC查内存泄漏方法第3张

点击中断按钮,在调用堆栈视图中,查找到内存泄漏的问题所在,是下图中new了一个对象放到map容器中

MFC查内存泄漏方法第4张

 所以做了map容器的清理操作,如下图:

MFC查内存泄漏方法第5张

 再次测试,关闭程序时,输出窗口已经不再出现内存泄漏问题,如下图所示。

MFC查内存泄漏方法第6张

免责声明:文章转载自《MFC查内存泄漏方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇redis 设置认证密码(转)使用CruiseControl+SVN+ANT实现持续集成之二下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MFC修改视图CView的背景颜色

  (1) 在CYournameView(就是你的视图类,以下以CDrawLineView为例)添加了一个背景颜色变量   COLORREF m_bgcolor;   (2)修改这个函数:   BOOL CDrawLineView::PreCreateWindow(CREATESTRUCT& cs){// TODO: Modify the Win...

5个Android开发中比较常见的内存泄漏问题及解决办法

在Android开发中,内存泄漏是比较常见的问题,有过一些Android编程经历的童鞋应该都遇到过,但为什么会出现内存泄漏呢?内存泄漏又有什么影响呢? 在Android程序开发中,当一个对象已经不需要再使用了,本该被回收时,而另外一个正在使用的对象持有它的引用从而导致它不能被回收,这就导致本该被回收的对象不能被回收而停留在堆内存中,内存泄漏就产生了。 内存...

MFC-CString与int互相转化

1. CString转int int n = 0; CString str = _T("123"); n = _ttoi(str); 2. int转CString int n = 0; CString str; str.Format(_T(%d) , n); 参考:MFC中 CString与int的转化 vs2010 中 MFC::CString...

深入浅出Visual C++动态链接库(Dll)编程

文章作者:宋宝华信息来源:天极网原始连接: http://soft.yesky.com/lesson/318/2166818.shtml?412  动态链接库(DLL)是Windows系统的核心,也是COM技术的基础,因此突破动态链接库一直是技术人员的攻坚目标,本期专题将由浅入深的介绍动态链接库的基础慨念、分类、实现和应用。基础慨念1.概论 先来阐述一...

深入浅出MFC学习笔记 消息

本章将会对MFC的消息映射和命令传递机制做深入探讨。 MFC规定了消息传递的路线,消息会按照这个路线传递下去,找不到归宿的话就交给DefWindowProc。 在产生窗口之前,如果我们在创建窗口时指定的窗口类为NULL时,MFC会自动注册五个默认的窗口类,每个窗口类有自己的窗口函数。不同窗口得到的消息应该交由不同的窗口函数来处理。所谓的命令传递机制是为了让...

android 内存泄漏,以及检测方法

1、为什么会产生内存泄漏 当一个对象已经不需要再使用本该被回收时,另外一个正在使用的对象持有它的引用从而导致它不能被回收,这导致本该被回收的对象不能被回收而停留在堆内存中,这就产生了内存泄漏。 2、内存泄漏对程序的影响 内存泄漏是造成应用程序OOM的主要原因之一。我们知道Android系统为每个应用程序分配的内存是有限的,而当一个应用中产生的内存泄漏比较多...