_CrtDumpMemoryLeaks
メモリ リークが発生したときに、デバッグ ヒープ内のすべてのメモリ ブロックをダンプします (デバッグ バージョンのみ)。
構文
int _CrtDumpMemoryLeaks( void );
戻り値
_CrtDumpMemoryLeaks
では、メモリ リークが見つかった場合は TRUE
を返します。 それ以外の場合、関数は FALSE
を返します。
解説
_CrtDumpMemoryLeaks
関数は、プログラムの実行開始以降にメモリ リークが発生したかどうかを判定します。 メモリ リークが見つかると、ヒープ内のすべてのオブジェクトのデバッグ ヘッダー情報が、ユーザーが判読できる形式でダンプされます。 _DEBUG
が定義されていない場合、_CrtDumpMemoryLeaks
の呼び出しは前処理で削除されます。
_CrtDumpMemoryLeaks
は、アプリケーションによって割り当てられたすべてのメモリが解放されたことを確認するために、プログラムの実行終了時に頻繁に呼び出されます。 プログラムの終了時にこの関数が自動的に呼び出されるようにするには、_CrtSetDbgFlag
関数を使用して、_crtDbgFlag
フラグの _CRTDBG_LEAK_CHECK_DF
ビット フィールドをオンにします。
_CrtDumpMemoryLeaks
では _CrtMemCheckpoint
を呼び出してヒープの現在の状態を取得し、解放されていないブロックの状態をスキャンします。 頻度の低いブロックが検出されると、 _CrtDumpMemoryLeaks
プログラムの実行開始時からヒープに割り当てられているすべてのオブジェクトの情報をダンプする呼び出し _CrtMemDumpAllObjectsSince
。
既定では、内部 C ランタイム ブロック (_CRT_BLOCK
) は、メモリ ダンプ操作に含まれません。 これらのブロックをリーク検出プロセスに含めるには、_CrtSetDbgFlag
関数を使用して、_crtDbgFlag
の _CRTDBG_CHECK_CRT_DF
ビットをオンにします。
ヒープ状態関数と_CrtMemState
構造の詳細については、「ヒープ状態レポート関数」を参照してください。 ベース ヒープのデバッグ バージョンでのメモリ ブロックの割り当て、初期化、および管理方法の詳細については、「CRT デバッグ ヒープの詳細」を参照してください。
必要条件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_CrtDumpMemoryLeaks |
<crtdbg.h> |
互換性の詳細については、「 Compatibility」を参照してください。
ライブラリ
C ランタイム ライブラリのデバッグ バージョンのみ。
例
_CrtDumpMemoryLeaks
の使用方法のサンプルについては、「crt_dbg1
」を参照してください。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示