ExtExtension
Класс ExtExtension является базовым классом для класса C++, который представляет библиотеку расширений EngExtCpp.
Класс ExtExtension включает следующие методы, которые могут использоваться подклассом:
IsUserMode
IsKernelMode
IsLiveLocalUser
IsMachine32
IsCurMachine32
IsMachine64
IsCurMachine64
Is32On64
CanQueryVirtual
HasFullMemBasic
IsExtensionRemote
AreOutputCallbacksDmlAware
RequireUserMode
RequireKernelMode
GetRawArgCopy
Out
Предупредить
Err
Команда
Dml
DmlWarn
DmlErr
DmlVerb
DmlCmdLink
DmlCmdExec
RefreshOutputCallbackFlags
WrapLine
OutWrapStr
OutWrapVa
OutWrap
DemandWrap
AllowWrap
TestWrap
RequestCircleString
CopyCircleString
PrintCircleStringVa
PrintCircleString
SetAppendBuffer
AppendBufferString
AppendStringVa
AppendString
IsAppendStart
SetCallStatus
GetCachedSymbolTypeId
GetCachedFieldOffset
GetCachedFieldOffset
AddCachedSymbolInfo
GetExpr64
GetExprU64
GetExprS64
ThrowCommandHelp
ThrowInterrupt
ThrowOutOfMemory
ThrowContinueSearch
ThrowReloadExtension
ThrowInvalidArg
ThrowRemote
ThrowStatus
ThrowLastError
Класс ExtExtension также содержит следующие поля, которые могут использоваться подклассом:
class ExtExtension
{
public:
USHORT m_ExtMajorVersion;
USHORT m_ExtMinorVersion;
ULONG m_ExtInitFlags;
ExtKnownStruct * m_KnownStructs;
ExtProvidedValue * m_ProvidedValues;
ExtCheckedPointer<IDebugAdvanced> m_Advanced;
ExtCheckedPointer<IDebugClient> m_Client;
ExtCheckedPointer<IDebugControl> m_Control;
ExtCheckedPointer<IDebugDataSpaces> m_Data;
ExtCheckedPointer<IDebugRegisters> m_Registers;
ExtCheckedPointer<IDebugSymbols> m_Symbols;
ExtCheckedPointer<IDebugSystemObjects> m_System;
ExtCheckedPointer<IDebugAdvanced2> m_Advanced2;
ExtCheckedPointer<IDebugAdvanced3> m_Advanced3;
ExtCheckedPointer<IDebugClient2> m_Client2;
ExtCheckedPointer<IDebugClient3> m_Client3;
ExtCheckedPointer<IDebugClient4> m_Client4;
ExtCheckedPointer<IDebugClient5> m_Client5;
ExtCheckedPointer<IDebugControl2> m_Control2;
ExtCheckedPointer<IDebugControl3> m_Control3;
ExtCheckedPointer<IDebugControl4> m_Control4;
ExtCheckedPointer<IDebugDataSpaces2> m_Data2;
ExtCheckedPointer<IDebugDataSpaces3> m_Data3;
ExtCheckedPointer<IDebugDataSpaces4> m_Data4;
ExtCheckedPointer<IDebugRegisters2> m_Registers2;
ExtCheckedPointer<IDebugSymbols2> m_Symbols2;
ExtCheckedPointer<IDebugSymbols3> m_Symbols3;
ExtCheckedPointer<IDebugSystemObjects2> m_System2;
ExtCheckedPointer<IDebugSystemObjects3> m_System3;
ExtCheckedPointer<IDebugSystemObjects4> m_System4;
ULONG m_OutputWidth;
ULONG m_ActualMachine;
ULONG m_Machine;
ULONG m_PageSize;
ULONG m_PtrSize;
ULONG m_NumProcessors;
ULONG64 m_OffsetMask;
ULONG m_DebuggeeClass;
ULONG m_DebuggeeQual;
ULONG m_DumpFormatFlags;
bool m_IsRemote;
bool m_OutCallbacksDmlAware;
ULONG m_OutMask;
ULONG m_CurChar;
ULONG m_LeftIndent;
bool m_AllowWrap;
bool m_TestWrap;
ULONG m_TestWrapChars;
PSTR m_AppendBuffer;
ULONG m_AppendBufferChars;
PSTR m_AppendAt;
};
m_ExtMajorVersion
Основной номер версии библиотеки расширений. Это значение должно быть задано методом Initialize . Если значение не задано, по умолчанию используется значение 1.
m_ExtMinorVersion
Дополнительный номер версии библиотеки расширений. Это значение должно быть задано методом Initialize . Если он не задан, по умолчанию используется значение 0 (ноль).
m_ExtInitFlags
Флаги инициализации расширения DbgEng для DebugExtensionInitialize.
m_KnownStructs
Массив структур ExtKnownStruct , которые библиотека расширений может форматировать для выходных данных. Этот элемент должен быть задан методом Initialize и не должен изменяться после возврата этим методом.
Если m_KnownStructs не имеет значение NULL, элемент TypeName последней структуры ExtKnownStruct в массиве должен иметь значение NULL.
При форматировании структуры целевого объекта для выходных данных, если имя типа структуры соответствует элементу TypeName одной из структур ExtKnownStruct в этом массиве, вызывается функция обратного вызова, указанная в элементе Method , для выполнения форматирования.
m_ProvidedValues
Массив структур ExtProvidedValue со списком псевдорегистраций, для которые библиотека расширений может предоставлять значения. Этот элемент должен быть задан методом Initialize и не должен изменяться после возврата этим методом.
Если m_ProvidedValues не равно NULL, элемент ValueName последней структуры ExtProvidedValue в массиве должен иметь значение NULL.
При оценке псевдорегистраля, если имя псевдорегистрала совпадает с элементом ValueName одной из структур ExtProvidedValue в этом массиве, функция обратного вызова, указанная в элементе Method , вызывается для оценки псевдорегистрала.
m_Advanced
Указатель интерфейса IDebugAdvanced для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod.
m_Client
Указатель интерфейса IDebugClient для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod.
m_Control
Указатель интерфейса IDebugControl для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod.
m_Data
Указатель интерфейса IDebugDataSpaces для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod.
m_Registers
Указатель интерфейса IDebugRegisters для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod.
m_Symbols
Указатель интерфейса IDebugSymbols для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod.
m_System
Указатель интерфейса IDebugSystemObjects для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod.
m_Advanced2
Указатель интерфейса IDebugAdvanced2 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Advanced3
Указатель интерфейса IDebugAdvanced3 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Client2
Указатель интерфейса IDebugClient2 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Client3
Указатель интерфейса IDebugClient3 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Client4
Указатель интерфейса IDebugClient4 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Client5
Указатель интерфейса IDebugClient5 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Control2
Указатель интерфейса IDebugControl2 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Control3
Указатель интерфейса IDebugControl3 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Control4
Указатель интерфейса IDebugControl4 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Data2
Указатель интерфейса IDebugDataSpaces2 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Data3
Указатель интерфейса IDebugDataSpaces3 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Data4
Указатель интерфейса IDebugDataSpaces4 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Registers2
Указатель интерфейса IDebugRegisters2 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Symbols2
Указатель интерфейса IDebugSymbols2 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_Symbols3
Указатель интерфейса IDebugSymbols3 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_System2
Указатель интерфейса IDebugSystemObjects2 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_System3
Указатель интерфейса IDebugSystemObjects3 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_System4
Указатель интерфейса IDebugSystemObjects4 для клиентского объекта, который может использоваться библиотекой расширений. Он действителен при вызове методов расширения, вызываемых извне, например при выполнении команды расширения, вызове ExtKnownStructMethod и ExtProvideValueMethod. Этот интерфейс может быть доступен не во всех версиях подсистемы отладчика.
m_PtrSize
Размер указателя на текущем целевом объекте. Если целевой объект использует 32-разрядные указатели, m_PtrSize равно 4. Если целевой объект использует 64-разрядные указатели, m_PtrSize равно 8.
m_AppendBuffer
Буфер символов, используемый для возврата строк из библиотеки расширений в подсистему. Размер этого буфера m_AppendBufferChars. Методы AppendBufferString, AppendStringVa и AppendString можно использовать для записи строк в этот буфер.
m_AppendBufferChars
Размер буферного m_AppendBuffer (в символах).