_CrtDumpMemoryLeaks
在调试堆转储所有内存块,如果内存泄漏发生时 (请只调试版本)。
int _CrtDumpMemoryLeaks( void );
返回值
,如果找到,_CrtDumpMemoryLeaks 返回 TRUE 内存泄漏。 否则,该函数返回错误。
备注
_CrtDumpMemoryLeaks 函数确定是否发生过内存泄漏自程序执行以来。 当找到泄漏时,所有对象的调试标题信息在堆中转储速率用户可读形式。 当 _DEBUG 未定义时,在预处理期间,对 _CrtDumpMemoryLeaks 中移除。
_CrtDumpMemoryLeaks 频繁调用在程序执行结束时验证应用程序分配的所有内存释放的内存。 该函数可以自动调用程序终止通过打开 _crtDbgFlag 标志的 _CRTDBG_LEAK_CHECK_DF 位域使用 _CrtSetDbgFlag 功能。
_CrtDumpMemoryLeaks 调用 _CrtMemCheckpoint 获取堆的当前状态然后浏览尚未释放的状态的块。 当 unfreed 的块时堆中遇到, _CrtDumpMemoryLeaks 调用 _CrtMemDumpAllObjectsSince 转储从开始分配的所有对象的信息程序执行。
默认情况下,内部 C 运行时在内存转储操作块 (_CRT_BLOCK) 不包括。 _CrtSetDbgFlag 功能在泄漏检测可用于将 _CRTDBG_CHECK_CRT_DF 位 _crtDbgFlag 置包括这些块处理。
有关堆态函数和 _CrtMemState framework 的更多信息,请参见 报告堆的状态功能。 有关如何的信息存储在基堆的调试版本中分配,初始化,并管理,请参见 内存管理和调试堆。
要求
实例 |
必需的头 |
---|---|
_CrtDumpMemoryLeaks |
crtdbg.h |
有关更多兼容性信息,请参见中介绍的 兼容性 。
库
只调试 C 运行库 的版本。
示例
有关此示例演示如何使用 _CrtDumpMemoryLeaks,请参见 crt_dbg1。
.NET Framework 等效项
不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例。