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 |
---|---|
m_Advanced |
|
m_Client |
|
m_Control |
|
m_Data |
|
m_Registers |
|
m_Symbols |
|
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.