클라이언트 개체 및 엔진
EngExtCpp 확장은 클라이언트 개체를 통해 디버거 엔진 과 상호 작용합니다. 클라이언트 개체에 대한 인터페이스 포인터는 ExtExtension 기본 클래스의 멤버를 통해 확장에서 사용할 수 있습니다. 다음 멤버는 첫 번째 버전의 엔진 API 인터페이스에 대한 액세스를 제공합니다.
엔진 API 인터페이스 | ExtExtension 멤버 |
---|---|
m_Advanced |
|
m_Client |
|
m_Control |
|
m_Data |
|
m_Registers |
|
m_Symbols |
|
m_System |
다음 멤버는 이후 버전의 엔진 API 인터페이스에 대한 액세스를 제공합니다. 이러한 인터페이스는 디버거 엔진의 모든 버전에서 사용할 수 없습니다. 사용할 수 없는 경우 이를 사용하려고 하면 예외가 throw됩니다.
엔진 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커넥트 함수를 사용하여 자체 클라이언트 개체를 만들 수도 있습니다.
클라이언트 개체에 대한 개요는 클라이언트 개체를 참조 하세요.