Objetos de cliente y el motor
Una extensión EngExtCpp interactúa con el motor del depurador a través de un objeto de cliente. Los punteros de interfaz al objeto de cliente están disponibles para la extensión a través de miembros de la clase base ExtExtension. Los siguientes miembros proporcionan acceso a la primera versión de las interfaces de API del motor.
Interfaz de API del motor | Miembro ExtExtension |
---|---|
m_Advanced |
|
m_Client |
|
m_Control |
|
m_Data |
|
m_Registers |
|
m_Symbols |
|
m_System |
Los siguientes miembros proporcionan acceso a versiones posteriores de las interfaces de API del motor. Es posible que estas interfaces no estén disponibles en todas las versiones del motor del depurador. Si no están disponibles, cualquier intento de usarlas producirá una excepción.
Interfaz de API del motor | Miembro ExtExtension |
---|---|
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 |
Los miembros de estas tablas se inicializan cada vez que se usa la biblioteca de extensiones para ejecutar un comando de extensión o dar formato a una estructura para la salida. Una vez completada una tarea, estos miembros no se inicializan. Por lo tanto, las extensiones no deben almacenar en caché los valores de estos miembros y deben usar directamente los miembros ExtExtension.
Una biblioteca de extensiones también puede crear sus propios objetos de cliente mediante el método IDebugClient::CreateClient o las funciones DebugCreate o DebugConnect.
Para obtener información general sobre los objetos de cliente, consulte Objetos de cliente.