_CrtDumpMemoryLeaks

發生記憶體流失時,傾印偵錯堆積中的所有記憶體區塊 (僅限偵錯版本)。

語法


int _CrtDumpMemoryLeaks( void );

傳回值

_CrtDumpMemoryLeaks 如果找到記憶體流失,則傳 TRUE 回 。 否則,此函式會傳回 FALSE

備註

_CrtDumpMemoryLeaks 函式會判斷自程式執行開始以來是否發生記憶體流失。 發現流失時,會以使用者可讀格式傾印堆積中所有物件的偵錯標頭資訊。 未定義 時 _DEBUG ,會在前置處理期間移除 對 的 _CrtDumpMemoryLeaks 呼叫。

程式執行結束時經常會呼叫 _CrtDumpMemoryLeaks,以確認應用程式所配置的所有記憶體皆已釋放。 使用 函式開啟 _CRTDBG_LEAK_CHECK_DF 旗標 _CrtSetDbgFlag_crtDbgFlag 位欄位,即可在程式終止時自動呼叫函式。

_CrtDumpMemoryLeaks 呼叫 _CrtMemCheckpoint 以取得堆積的目前狀態,然後掃描狀態是否有尚未釋放的區塊。 遇到解除凍結區塊時, _CrtDumpMemoryLeaks 從程式執行開始,呼叫 _CrtMemDumpAllObjectsSince 傾印堆積中配置的所有物件資訊。

根據預設,內部 C 執行時間區塊 ( _CRT_BLOCK ) 不會包含在記憶體傾印作業中。 函 _CrtSetDbgFlag 式可用來開啟 _CRTDBG_CHECK_CRT_DF 的 位 _crtDbgFlag ,以在洩漏偵測程式中包含這些區塊。

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

需求

常式 必要的標頭
_CrtDumpMemoryLeaks <crtdbg.h>

如需相容性詳細資訊,請參閱相容性

程式庫

僅限偵錯版本的 C 執行階段程式庫

範例

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

另請參閱

偵錯常式