次の方法で共有


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

更新 : 2007 年 11 月

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

Edition

Visual Basic

C#

C++

Web Developer

Express

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

ネイティブのみ

トピック該当なし

Standard

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

ネイティブのみ

トピック該当なし

Pro/Team

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

ネイティブのみ

トピック該当なし

表の凡例 :

トピック該当

対象

トピック該当なし

該当なし

トピックは該当しますが、コマンドは既定では非表示です

既定で非表示のコマンド

_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

その他の技術情報

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