_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
。