Objets clients et le moteur
Une extension EngExtCpp interagit avec le moteur de débogage à travers un objet client. Les pointeurs d’interface vers l’objet client sont disponibles pour l’extension via les membres de la classe de base ExtExtension. Les membres suivants fournissent l’accès à la première version des interfaces API du moteur.
Interface API du moteur | Membre ExtExtension |
---|---|
m_Advanced |
|
m_Client |
|
m_Control |
|
m_Data |
|
m_Registers |
|
m_Symbols |
|
m_System |
Les membres suivants fournissent l’accès aux dernières versions des interfaces API du moteur. Ces interfaces peuvent ne pas être disponibles dans toutes les versions du moteur de débogage. Si c’est le cas, toute tentative de les utiliser entraîne la levée d’une exception.
Interface API du moteur | Membre 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 |
Les membres de ces tables sont initialisés chaque fois qu’on utilise la bibliothèque d’extensions pour exécuter une commande d’extension ou mettre en forme une structure pour la sortie. Une fois qu’une tâche est accomplie, ces membres ne sont pas initialisés. Par conséquent, les extensions ne doivent pas mettre en cache les valeurs de ces membres et doivent utiliser directement les membres ExtExtension .
Une bibliothèque d’extensions peut également créer ses propres objets clients à l’aide de la méthode IDebugClient::CreateClient ou les fonctions DebugCreate ou DebugConnect.
Pour obtenir une vue d’ensemble des objets clients, consultez Objets clients.