WEB开发网
开发学院软件开发VC VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏... 阅读

VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏

 2007-03-17 21:27:37 来源:WEB开发网   
核心提示: 下面是我看过 MSDN 资料后,针对“如何使用 CRT 调试功能来检测内存泄漏?”的问题进行了一番编译和整理,VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏(2),希望对大家有用,如果你的英文很棒,也就是说即使某段代码有内存泄漏,调试会话的 Outpu

下面是我看过 MSDN 资料后,针对“如何使用 CRT 调试功能来检测内存泄漏?”的问题进行了一番编译和整理,希望对大家有用。如果你的英文很棒,那就不用往下看了,建议直接去读 MSDN 库中的技术原文。

C/C++ 编程语言的最强大功能之一便是其动态分配和释放内存,但是中国有句古话:“最大的长处也可能成为最大的弱点”,那么 C/C++ 应用程序正好印证了这句话。在 C/C++ 应用程序开发过程中,动态分配的内存处理不当是最常见的问题。其中,最难捉摸也最难检测的错误之一就是内存泄漏,即未能正确释放以前分配的内存的错误。偶尔发生的少量内存泄漏可能不会引起我们的注意,但泄漏大量内存的程序或泄漏日益增多的程序可能会表现出各种 各样的征兆:从性能不良(并且逐渐降低)到内存完全耗尽。更糟的是,泄漏的程序可能会用掉太多内存,导致另外一个程序垮掉,而使用户无从查找问题的真正根源。此外,即使无害的内存泄漏也可能殃及池鱼。

幸运的是,Visual Studio 调试器和 C 运行时 (CRT) 库为我们提供了检测和识别内存泄漏的有效方法。下面请和我一起分享收获——如何使用 CRT 调试功能来检测内存泄漏?

如何启用内存泄漏检测机制?

使用 _CrtSetDbgFlag

设置 CRT 报告模式

解释内存块类型

如何在内存分配序号处设置断点?

如何比较内存状态?

结论

如何启用内存泄漏检测机制?

VC++ IDE 的默认状态是没有启用内存泄漏检测机制的,也就是说即使某段代码有内存泄漏,调试会话的 Output 窗口的 Debug 页不会输出有关内存泄漏信息。你必须设定两个最基本的机关来启用内存泄漏检测机制。

一是使用调试堆函数:

上一页  1 2 3 4 5 6 7  下一页

Tags:VC 如何 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接