`
jiagou
  • 浏览: 2544685 次
文章分类
社区版块
存档分类
最新评论

windows下内存泄露的检查方法

 
阅读更多
内存泄露是比较麻烦的事情,主要靠规范的编写内存使用方法来根除内存泄露。如果出现内存泄露的情况下,要及时发现问题,及时解决,否则会出现很多意想不到的问题。

1、现象
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.
2、解决方法
从1中可以看出在地址98500处出现了内存泄露,但是对应开辟该内存的代码在什么地方,如果代码量大的话,是无法从代码上发现的。
微软的vs开发环境提供了一个检查内存泄露的方法:
1)在程序开始启动的地方(足够前的地方,只要在泄漏的内存分配的前面)使用代码:
_CrtSetBreakAlloc(98500);//98500为上面内存泄漏的块号.
2)然后debug运行,程序自动断点在"内存块98500"分配的位置:
3)这个时候我们利用 "调试" –>"退出" ,快捷键为:"Shift + F11" .跳出当前函数..然后一直往"上"跳,边跳边查看调用栈.直到看到了自己写的代码。

这样就可以有针对性的解决问题了。
分享到:
评论

相关推荐

    有效的C++内存泄露检测方法.pdf

    摘要 : 提 出了一个有效的c++内存泄漏检测方法。方法在分析内存泄漏的基础上,通过重新实现动态内存分配和释放函数,记录内 存分w的确切位!并跟踪动态内存的使用情况在程序结未时,方法利用跟踪结果检洲和定位内存...

    QT Creator内存泄露检测VLD

    windows下Qt creator 使用 VLD 工具的方法,下载 安装 使用 用浏览器打开

    Windows Mobile和WinCE下的内存检测

    可用于Windows Mobile和Windows CE工程下的内存检测,里面有代码。 使用方法很简单: 1、在Debug模式下运行(#define _DEBUG) 2、在cpp上包含crtdbg.h(#include "crtdbg.h") 3、在cpp里加上_CrtSetDbgFlag (ON); ...

    vld(Visual Leak Detector 内存泄露检测工具 源码)

    相比较其它的内存泄露检测工具,它在检测到内存泄漏的同时,还具有如下特点:  1、 可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在文件及行号;  2、 可以得到泄露内存的完整数据;  3、 可以...

    Windows Embedded从入门到精通系列课程(3):Windows CE 内存泄漏的检测和防止

    很多嵌入式设备是长时间丌间断运行的,即使是些微的内存泄漏(Memory Leak),也会积少成多,对嵌入式系统带来灾难性的影响。本节课介绍 Windows CE 的内存管理机制,内存泄漏的检测方法和防范手段。

    C++程序内存泄漏检测方法

     注意:我们的分析前提是Release版本,因为在Debug环境下,通过VLD这个库或者CRT库本身的内存泄漏检测函数能够分析出内存泄漏,相对而言比较简单。而服务器有很多问题需要在线上并发压力情况下才出现,因此讨论...

    C++内存泄露检测原理、源码及详解

    详细讲解了检测C++内存泄露的原理及使用方法,并提供相应的源码。适合Windows和linux系统,实现了跨平台

    Visual Leak Detector(VLD)内存泄漏检测工具

    相比较其它的内存泄露检测工具,它在检测到内存泄漏的同时,还具有如下特点: 1、 可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在文件及行号; 2、 可以得到泄露内存的完整数据; 3、 可以设置内存...

    CodeSnitch(wince windows mobile)平台下检测内存泄露工具

    CodeSnitch(wince windows mobile)平台下检测内存泄露工具 到下面的网页申请15天试用 http://www.entrek.com/EvalForm.asp 文件里面有使用方法,因为试用版的一些限制,可以通过里面附带的另一个小工具解除

    C++程序检测内存泄漏的方法分享

    注意:我们的分析前提是Release版本,因为在Debug环境下,通过VLD这个库或者CRT库本身的内存泄漏检测函数能够分析出内存泄漏,相对而言比较简单。而服务器有很多问题需要在线上并发压力情况下才出现,因此讨论Debug...

    自己写的JRockit教程(LINUX下)检测JAVA内存泄漏CHM

    本教程提供在linux上用JRockit启动JAVA程序、在windows上启动JRockit检测内存泄漏的方法(远程连接),分为以下步骤:获得 JRockit、安装JRockit、指定LINUX要使用的JDK、修改JAVA程序启动参数、运行JRockit

    一种面向云计算的服务器内存泄漏检测方法 (2013年)

    基于Xen虚拟化平台设计了一个可靠的内存泄漏检测系统,首先对Xen内核进行修改,新增超级调用接口,然后构建了调用这些接口的基本组件,并对Windows和Linux服务器环境做了具体的实现。经过测试,系统能够在x86架构的计算机...

    windows下cppcheck的使用

    cppcheck是一款静态代码检查工具,可以检查如内存泄漏等代码错误,使用起来比较简单,即提供GUI界面操作,也可以与VS开发工具结合使用。一般会提供免安装版,安装完成后将cppcheck.exe所在目录添加到环境变量中,...

    WINDOWS 内部原理 (八)

    同时将讨论应用程序中内存的使用问题,内存泄露的发生以及排除方法。 深入研究Windows内部原理系列之九:Windows的安全机制和实现 讲师信息:张瞰 2007年02月06日 14:00-15:30 Level: 400 Windows如何从操作...

    (内存和资源)WinCE泄漏检测

    这是“ WinCE的内存泄漏检测”的替代方法。

    内存管理内存管理内存管理

    让我们来了解可用于内存管理的不同方法,它们的好处与不足,以及它们最适用的情形。 C 风格的内存分配程序 C 编程语言提供了两个函数来满足我们的三个需求: malloc:该函数分配给定的字节数,并返回一个指向...

    Visual Leak Detector(VLD)1.9d

    相比较其它的内存泄露检测工具,它在检测到内存泄漏的同时,还具有如下特点: 1、 可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在文件及行号; 2、 可以得到泄露内存的完整数据; 3、 可以设置...

    windows 内部原理(一)

    同时将讨论应用程序中内存的使用问题,内存泄露的发生以及排除方法。 深入研究Windows内部原理系列之九:Windows的安全机制和实现 讲师信息:张瞰 2007年02月06日 14:00-15:30 Level: 400 Windows如何从操作...

Global site tag (gtag.js) - Google Analytics