_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」を参照してください。

関連項目

デバッグ ルーチン