Freigeben über


Hookfunktionen für Clientblöcke

Aktualisiert: November 2007

Dieses Thema gilt für folgende Anwendungsbereiche:

Edition

Visual Basic

C#

C++

Web Developer

Express

Nur "Systemeigen"

Standard

Nur "Systemeigen"

Pro und Team

Nur "Systemeigen"

Tabellenlegende:

Vorhanden

Nicht vorhanden

Befehl oder Befehle, die standardmäßig ausgeblendet sind.

Wenn Sie die in _CLIENT_BLOCK-Blöcken gespeicherten Daten überprüfen oder als Bericht ausgeben möchten, können Sie speziell für diesen Zweck eine Funktion schreiben. Der Prototyp dieser Funktion muss etwa wie der folgende, in CRTDBG.H definierte Prototyp aussehen:

void YourClientDump(void *, size_t)

Das bedeutet, dass die Hookfunktion einen void-Zeiger auf den Anfang des Reservierungsblocks sowie einen Wert vom Typ size_t, der die Reservierungsgröße angibt, akzeptieren und void zurückgeben muss. Der restliche Inhalt dieser Funktion ist Ihnen freigestellt.

Nachdem Sie die Hookfunktion mithilfe von _CrtSetDumpClient installiert haben, wird sie bei jedem Dump eines _CLIENT_BLOCK-Blocks aufgerufen. Mithilfe von _CrtReportBlockType können Sie anschließend Informationen zum Typ oder Untertyp der im Dump ausgegebenen Blöcke abrufen.

Der Zeiger auf die Funktion, den Sie an _CrtSetDumpClient übergeben, ist vom Typ _CRT_DUMP_CLIENT, wie in Crtdbg.h definiert:

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

Siehe auch

Aufgaben

crt_dbg2-Beispiel: C-Laufzeit – Debuggen von Hookfunktionen

Referenz

_CrtReportBlockType

Weitere Ressourcen

Schreiben von Hookfunktionen zum Debuggen