Objetos de cliente e o mecanismo
Uma extensão EngExtCpp interage com o mecanismo do depurador por meio de um objeto de cliente. Ponteiros de interface para o objeto de cliente estão disponíveis para a extensão por meio de membros da classe base ExtExtension. Os membros a seguir fornecem acesso à primeira versão das interfaces de API do mecanismo.
Interface de API do mecanismo | Membro ExtExtension |
---|---|
m_Advanced |
|
m_Client |
|
m_Control |
|
m_Data |
|
m_Registers |
|
m_Symbols |
|
m_System |
Os membros a seguir fornecem acesso às versões posteriores das interfaces de API do mecanismo. Essas interfaces podem não estar disponíveis em todas as versões do mecanismo do depurador. Se elas não estiverem disponíveis, qualquer tentativa de usá-las resultará na geração de uma exceção.
Interface de API do mecanismo | Membro 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 |
Os membros nessas tabelas são inicializados sempre que a biblioteca de extensões é usada para executar um comando de extensão ou formatar uma estrutura para saída. Depois que uma tarefa é concluída, esses membros não são inicializados. Consequentemente, as extensões não devem armazenar em cache os valores desses membros e devem usar os membros ExtExtension diretamente.
Uma biblioteca de extensões também pode criar seus próprios objetos de cliente usando o método IDebugClient::CreateClient ou as funções DebugCreate ou DebugConnect.
Para obter uma visão geral dos objetos de cliente, confira Objetos de cliente.