_CrtDumpMemoryLeaks
メモリ リークが発生した場合はデバッグ ヒープにすべてのメモリ ブロックをダンプします (デバッグ バージョンだけ)。
int _CrtDumpMemoryLeaks( void );
戻り値
_CrtDumpMemoryLeaksメモリ リークが存在する場合は true を返します。それ以外の場合は false が返されます。
解説
_CrtDumpMemoryLeaks の関数はメモリ リークがプログラムの実行開始以降に発生したかどうかを判定します。メモリ リークがある場合はヒープ内のすべてのオブジェクトのデバッグのヘッダー情報はユーザー読み取り可能な形式でダンプされます。_DEBUG が未定義の場合、_CrtDumpMemoryLeaks の呼び出しはプリプロセスで削除されます。
_CrtDumpMemoryLeaks はプログラムの実行の終了時にアプリケーションによって割り当てられたメモリはすべて放されたことを確認するために呼び出されます。関数はプログラムの終了を _CrtSetDbgFlag の関数を使用して _crtDbgFlag フラグの _CRTDBG_LEAK_CHECK_DF のビット フィールドをクリックすることによって自動的に呼び出すことができます。
_CrtDumpMemoryLeaks はヒープの現在の状態を取得するに _CrtMemCheckpoint を呼び出して解放されたブロックに対して状態を処理します。unfreed ブロックに到達すると**_CrtDumpMemoryLeaks** はプログラムの実行の開始時点からヒープに割り当てられたすべてのオブジェクトについての情報をダンプするに _CrtMemDumpAllObjectsSince を呼び出します。
既定では内部 C ランタイム _CRT_BLOCK ブロック () はメモリ ダンプの操作に含まれません。_CrtSetDbgFlag の関数がメモリ リークのプロセスにこれらのブロックを含めるに _crtDbgFlag の _CRTDBG_CHECK_CRT_DF のビットをオンにすることができます。
ヒープ状態関数と _CrtMemState の構造の詳細についてはヒープ状態レポート関数 を参照してください。デバッグ バージョンのベース ヒープに対するメモリ ブロックの割り当て、初期化、管理方法の詳細については、「メモリ管理とデバッグ ヒープ」を参照してください。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_CrtDumpMemoryLeaks |
<crtdbg.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのデバッグ バージョンのみ。
使用例
_CrtDumpMemoryLeaks を使用する方法の例については crt_dbg1 を参照してください。
同等の .NET Framework 関数
該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。