Freigeben über


Client-Objekte und die Engine

Eine EngExtCpp-Erweiterung interagiert mit der Debugger-Engine über ein Client-Objekt. Schnittstellenzeiger auf das Client-Objekt sind für die Erweiterung über Mitglieder der Basisklasse ExtExtension verfügbar. Die folgenden Mitglieder bieten Zugriff auf die erste Version der Engine-API-Schnittstellen.

Engine-API-Schnittstelle ExtExtension-Mitglied

IDebugAdvanced

m_Advanced

IDebugClient

m_Client

IDebugControl

m_Control

IDebugDataSpaces

m_Data

IDebugRegisters

m_Registers

IDebugSymbols

m_Symbols

IDebugSystemObjects

m_System

Die folgenden Mitglieder ermöglichen den Zugriff auf spätere Versionen der Engine-API-Schnittstellen. Diese Schnittstellen sind möglicherweise nicht in allen Versionen der Debugger-Engine verfügbar. Wenn sie nicht verfügbar sind, führt jeder Versuch, sie zu verwenden, zu einer ausgelösten Ausnahme.

Engine-API-Schnittstelle ExtExtension-Mitglied

IDebugAdvanced2

m_Advanced2

IDebugAdvanced3

m_Advanced3

IDebugClient2

m_Client2

IDebugClient3

m_Client3

IDebugClient4

m_Client4

IDebugClient5

m_Client5

IDebugControl2

m_Control2

IDebugControl3

m_Control3

IDebugControl4

m_Control4

IDebugData2

m_Data2

IDebugData3

m_Data3

IDebugData4

m_Data4

IDebugRegisters2

m_Registers2

IDebugSymbols2

m_Symbols2

IDebugSymbols3

m_Symbols3

IDebugSystemObjects2

m_System2

IDebugSystemObjects3

m_System3

IDebugSystemObjects4

m_System4

Die Mitglieder in diesen Tabellen werden jedes Mal initialisiert, wenn die Erweiterungsbibliothek verwendet wird, um einen Erweiterungsbefehl auszuführen oder eine Struktur für die Ausgabe zu formatieren. Sobald eine Aufgabe abgeschlossen ist, werden diese Mitglieder nicht mehr initialisiert. Daher sollten Erweiterungen die Werte dieser Mitglieder nicht zwischenspeichern und die ExtExtension-Mitglieder direkt verwenden.

Eine Erweiterungsbibliothek kann auch ihre eigenen Client-Objekte erstellen, indem sie die Methode IDebugClient::CreateClient oder die Funktionen DebugCreate oder DebugConnect verwendet.

Eine Übersicht über die Client-Objekte finden Sie unter Client-Objekte.