CRT 调试堆

本主题适用于:

版本

Visual Basic

C#

F#

C++

Web Developer

学习版

主题不适用 主题不适用 主题不适用

仅限本机

主题不适用

专业版、高级专业版和旗舰版

主题不适用 主题不适用 主题不适用

仅限本机

主题不适用

本节提供对 CRT 调试堆的详细描述。

本节内容

  • 内存管理和调试堆
    描述堆函数的“Debug”版本。 这些函数解决两个最难处理的内存分配问题:覆盖已分配缓冲区的结尾和内存泄漏(当不再需要分配后未能释放它们)。

  • 调试堆中的块类型
    描述在调试堆中内存块所分配到的五种分配类型。 出于泄漏检测和状态报告的目的,以不同方式对这些分配类型进行跟踪和报告。

  • 调试堆
    提供有关使用调试堆的信息。 信息包括:哪些调用用于“Debug”版本,释放内存块时将发生什么,哪些调试功能必须从代码内部进行访问,更改 _crtDbgFlag 位域以创建标志的新状态的步骤,以及一个阐释如何打开自动泄漏检测和如何关闭 _CRT_BLOCK 类型块的检查的代码示例。

  • C++ 中的调试堆
    讨论 C++ newdelete 运算符的“Debug”版本和使用 _CRTDBG_MAP_ALLOC 的效果。

  • 堆状态报告函数
    描述 _CrtMemState 结构,可以使用它来捕捉堆状态的摘要快照。 本主题还列出一些 CRT 函数,这些函数报告堆的状态和内容并使用这些信息来帮助检测内存泄漏和其他问题。

  • 跟踪堆分配请求
    包含用于标识出错的特定堆分配调用的方法。

相关章节

  • CRT 调试技术
    链接到用于 C 运行库的调试技术,包括:使用 CRT 调试库、用于报告的宏、malloc_malloc_dbg 之间的差异、编写调试挂钩函数以及 CRT 调试堆。