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 ランタイムのデバッグのフック関数