共用方式為


_CrtDumpMemoryLeaks

當記憶體遺漏發生時,在偵錯堆積傾印所有記憶體區塊 (僅偵錯版本)。

int _CrtDumpMemoryLeaks( void );

傳回值

如果找到記憶體遺漏,則 _CrtDumpMemoryLeaks 傳回TRUE。 否則,函式會傳回 false。

備註

_CrtDumpMemoryLeaks 函式會判斷自程式執行啟動後記憶體遺漏是否發生。 找到遺漏時,堆積內所有物件的偵錯標頭資訊會傾印為使用者可閱讀的格式。 如果未定義 _DEBUG,在前置處理中,對 _CrtDumpMemoryLeaks 的呼叫將被移除。

_CrtDumpMemoryLeaks 通常會在程序執行結束時被呼叫,以驗證應用程式配置的所有記憶體已經釋放。 藉由開啟 _crtDbgFlag 旗標的 _CRTDBG_LEAK_CHECK_DF 位元欄(使用 _CrtSetDbgFlag 函式),可讓此函式在程式結束時自動被呼叫。

_CrtDumpMemoryLeaks 呼叫 _CrtMemCheckpoint 以取得堆積的目前狀態然後掃描未釋放區塊的狀態。 當遇到一個未被釋放的區塊時, _CrtDumpMemoryLeaks 會呼叫 _CrtMemDumpAllObjectsSince 以傾印程式開始執行以來,堆積內配置的所有物件之資訊。

根據預設,內部 C 執行階段區塊 (_CRT_BLOCK) 不包含在記憶體傾印作業。 _CrtSetDbgFlag 函式可用來開啟 _crtDbgFlag_CRTDBG_CHECK_CRT_DF,將這些區塊包含至遺漏檢測程序。

如需堆積狀態的函式和 _CrtMemState 結構的詳細資訊,請參閱 堆積報告狀態回報函式。 如需記憶體區塊配置、初始化的方式,並在基底堆積的偵錯版本管理記憶體區塊的更多詳細資訊,請參閱 CRT 偵錯堆積詳細資料

需求

常式

必要的標頭

_CrtDumpMemoryLeaks

<crtdbg.h>

如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility)

程式庫

C run-time libraries 版本的偵錯

範例

如需 _CrtDumpMemoryLeaks 使用方式的範例,請參閱 crt_dbg1

.NET Framework 對等用法

不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需詳細資訊,請參閱平台叫用範例

請參閱

參考

偵錯常式