_CrtMemDumpAllObjectsSince
从程序开始执行或从指定的堆状态转储堆中对象的信息(仅限调试版本)。
语法
void _CrtMemDumpAllObjectsSince(
const _CrtMemState *state
);
参数
state
指向开始从其转储的堆状态的指针,或 NULL
。
注解
_CrtMemDumpAllObjectsSince
函数以用户可读的形式转储堆中分配的对象的调试标头信息。 应用程序可以使用转储信息来跟踪分配并检测内存问题。 未定义 _DEBUG
时,会在预处理过程中删除对 _CrtMemDumpAllObjectsSince
的调用。
_CrtMemDumpAllObjectsSince
使用 state
参数的值确定启动转储操作的位置。 要从指定堆状态开始转储,state
参数必须是指向 _CrtMemState
结构的指针,此结构在调用 _CrtMemDumpAllObjectsSince
前已由 _CrtMemCheckpoint
填充。 当 state
为 NULL
时,该函数从程序开始执行时即开始转储。
如果应用程序通过调用 _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
。