次の方法で共有


Client ブロック用のフック関数

このトピックの内容は、次の製品に該当します。

エディション

Visual Basic

C#

F#

C++

Web Developer

Express

トピック該当なし トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

Pro、Premium、Ultimate

トピック該当なし トピック該当なし トピック該当なし

ネイティブのみ

トピック該当なし

_CLIENT_BLOCK 型のブロックに格納されているデータの内容を検証したりレポートしたりするために、専用の関数を作成できます。 作成する関数には、CRTDBG.H で定義されている次のようなプロトタイプが必要です。

void YourClientDump(void *, size_t)

つまり、独自のフック関数は、対象となる割り当てブロックの先頭への void ポインターと、割り当てサイズを示す size_t 型の値を受け取り、void を返すようにする必要があります。 それ以外の内容については、自由に決定できます。

作成したフック関数を _CrtSetDumpClient を使用して組み込むと、_CLIENT_BLOCK 型のブロックがダンプされるたびに、このフック関数が呼び出されます。 _CrtReportBlockType を使用すると、ダンプされたブロックの型や、その細分化された型に関する情報を取得できます。

_CrtSetDumpClient に渡す独自の関数へのポインターは _CRT_DUMP_CLIENT 型です。これらは、CRTDBG.H で次のように定義されています。

typedef void (__cdecl *_CRT_DUMP_CLIENT)
   (void *, size_t);

参照

処理手順

crt_dbg2 サンプル : C ランタイムのデバッグのフック関数

参照

_CrtReportBlockType

その他の技術情報

デバッグ用フック関数の作成