_CrtMemDumpAllObjectsSince

从程序开始执行或从指定的堆状态转储堆中对象的信息(仅限调试版本)。

语法

void _CrtMemDumpAllObjectsSince(
   const _CrtMemState *state
);

参数

state
指向开始从其转储的堆状态的指针,或 NULL

注解

_CrtMemDumpAllObjectsSince 函数以用户可读的形式转储堆中分配的对象的调试标头信息。 应用程序可以使用转储信息来跟踪分配并检测内存问题。 未定义 _DEBUG 时,会在预处理过程中删除对 _CrtMemDumpAllObjectsSince 的调用。

_CrtMemDumpAllObjectsSince 使用 state 参数的值确定启动转储操作的位置。 要从指定堆状态开始转储,state 参数必须是指向 _CrtMemState 结构的指针,此结构在调用 _CrtMemDumpAllObjectsSince 前已由 _CrtMemCheckpoint 填充。 当 stateNULL 时,该函数从程序开始执行时即开始转储。

如果应用程序通过调用 _CrtSetDumpClient 安装了转储挂钩函数,那么每次 _CrtMemDumpAllObjectsSince 转储有关 _CLIENT_BLOCK 块类型的信息时,它都会调用应用程序提供的转储函数。 默认情况下,内存转储操作不包含内部 C 运行时块 (_CRT_BLOCK)。 _CrtSetDbgFlag 函数可用来打开 _crtDbgFlag_CRTDBG_CHECK_CRT_DF 位,以包含这些块。 此外,标记为已释放或已忽略的块(_FREE_BLOCK_IGNORE_BLOCK)不包括在内存转储中。

有关堆状态函数和 _CrtMemState 结构的详细信息,请参阅堆状态报告函数。 有关如何在基堆的调试版本中分配、初始化和管理内存块的详细信息,请参阅 CRT 调试堆详细信息

要求

例程 必需的标头
_CrtMemDumpAll-ObjectsSince <crtdbg.h>

有关兼容性的详细信息,请参阅 兼容性

仅限 C 运行时库的调试版本。

示例

有关如何使用 _CrtMemDumpAllObjectsSince 的示例,请参阅 crt_dbg2

另请参阅

调试例程
_crtDbgFlag