Share via


_CrtMemDumpAllObjectsSince

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

void _CrtMemDumpAllObjectsSince(  
   const _CrtMemState *state  
);

参数

  • state
    指向堆状态开始转储或为 NULL 的指针。

备注

_CrtMemDumpAllObjectsSince 函数转储分配在堆中对象的调试头信息到用户可读的表格中。 转储信息可以被应用程序跟踪配置和检测内存问题使用。 当 _DEBUG 未定义时,在预处理期间移除对 _CrtMemDumpAllObjectsSince 的调用。

_CrtMemDumpAllObjectsSince 使用state 参数的值来确定哪里开始转储操作。 从指定的堆状态开始转储,state 参数必须是在调用**_CrtMemDumpAllObjectsSince** 之前,指向由 _CrtMemCheckpoint 填充的 _CrtMemState 结构的指针。 当 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

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见平台调用示例

请参见

参考

调试例程

_crtDbgFlag