客户端对象和引擎
EngExtCpp 扩展通过客户端对象与调试器引擎交互。 客户端对象的接口指针可通过 ExtExtension 基类的成员提供给扩展。 以下成员可访问第一个版本的引擎 API 接口。
引擎 API 接口 | ExtExtension 成员 |
---|---|
m_Advanced |
|
m_Client |
|
m_Control |
|
m_Data |
|
m_Registers |
|
m_Symbols |
|
m_System |
以下成员可访问较新版本的引擎 API 接口。 并非所有版本的调试器引擎都提供这些接口。 如果它们不可用,任何使用它们的尝试都会引发异常。
引擎 API 接口 | 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 |
每次使用扩展库执行扩展命令或格式化输出结构时,这些表中的成员都会被初始化。 任务完成后,这些成员不会被初始化。 因此,扩展不应缓存这些成员的值,而应直接使用 ExtExtension 成员。
扩展库还可以使用方法 IDebugClient::CreateClient 或函数 DebugCreate 或 DebugConnect 来创建自己的客户端对象。
有关客户端对象的概述,请参阅客户端对象。