Поделиться через


Клиентские объекты и подсистема

Расширение 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 или функций DebugCreate или Debug Подключение.

Общие сведения о клиентских объектах см. в разделе "Клиентские объекты".