客户端对象和引擎

EngExtCpp 扩展通过客户端对象与调试器引擎交互。 客户端对象的接口指针可通过 ExtExtension 基类的成员提供给扩展。 以下成员可访问第一个版本的引擎 API 接口。

引擎 API 接口 ExtExtension 成员

IDebugAdvanced

m_Advanced

IDebugClient

m_Client

IDebugControl

m_Control

IDebugDataSpaces

m_Data

IDebugRegisters

m_Registers

IDebugSymbols

m_Symbols

IDebugSystemObjects

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 或函数 DebugCreateDebugConnect 来创建自己的客户端对象。

有关客户端对象的概述,请参阅客户端对象