内存泄漏检测和隔离
更新:2007 年 11 月
本主题适用于:
版本 |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
速成版 |
![]() |
![]() |
仅限本机 |
![]() |
标准版 |
![]() |
![]() |
仅限本机 |
![]() |
专业团队版 |
![]() |
![]() |
仅限本机 |
![]() |
表格图例:
![]() |
适用 |
![]() |
不适用 |
![]() |
默认情况下隐藏的一条或多条命令。 |
动态分配和释放内存的功能是 C/C++ 编程的最强大功能之一,但最大的长处也可能成为最大的弱点。C/C++ 应用程序即是如此,在这些应用程序中,内存处理问题属于最常见的 bug。
最难捉摸也最难检测到的错误之一是内存泄漏,即未能正确释放以前分配的内存的 bug。只发生一次的小的内存泄漏可能不会被注意,但泄漏大量内存的程序或泄漏日益增多的程序可能会表现出各种征兆:从性能不良(并且逐渐降低)到内存完全用尽。更糟的是,泄漏的程序可能会用掉太多内存,以致另一个程序失败,而使用户无从查找问题的真正根源。此外,即使无害的内存泄漏也可能是其他问题的征兆。
幸运的是,Visual Studio 调试器和 C 运行时 (CRT) 库为您提供了检测和识别内存泄漏的有效方法。若要了解如何使用 CRT 调试功能来检测内存泄漏,请阅读以下主题:
MFC 提供它自己的一组功能来检测 MFC 程序中的内存泄漏。有关更多信息,请参见在 MFC 中检测内存泄漏。