ExtExtension
The ExtExtension class is the base class for the C++ class that represents the EngExtCpp extension library.
The ExtExtension class includes the following methods, which can be used by the subclass:
AreOutputCallbacksDmlAware
RefreshOutputCallbackFlags
The ExtExtension class also contains the following fields that can be used by the subclass:
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;
};
Members
- m_ExtMajorVersion
- The major version number of the extension library. This should be set by the Initialize method. If it is not set, it defaults to 1.
- m_ExtMinorVersion
- The minor version number of the extension library. This should be set by the Initialize method. If it is not set, it defaults to 0 (zero).
- m_ExtInitFlags
- The DbgEng extension initialization flags for DebugExtensionInitialize.
- m_KnownStructs
- An array of ExtKnownStruct structures that the extension library is capable of formatting for output. This member should be set by the Initialize method and should not be changed once this method returns.
If m_KnownStructs is not NULL, the TypeName member of the last ExtKnownStruct structure in the array must be NULL.
When formatting a target's structure for output, if the name of the structure's type matches the TypeName member of one of the ExtKnownStruct structures in this array, the callback function specified in the Method member is called to perform the formatting.
- m_ProvidedValues
- An array of ExtProvidedValue structures listing the pseudo registers that the extension library can provide values for. This member should be set by the Initialize method and should not be changed once this method returns.
If m_ProvidedValues is not NULL, the ValueName member of the last ExtProvidedValue structure in the array must be NULL.
When evaluating a pseudo register, if the name of the pseudo register matches the ValueName member of one of the ExtProvidedValue structures in this array, the callback function specified in the Method member is called to evaluate the pseudo register.
- m_Advanced
- The IDebugAdvanced interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod.
- m_Client
- The IDebugClient interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod.
- m_Control
- The IDebugControl interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod.
- m_Data
- The IDebugDataSpaces interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod.
- m_Registers
- The IDebugRegisters interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod.
- m_Symbols
- The IDebugSymbols interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod.
- m_System
- The IDebugSystemObjects interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod.
- m_Advanced2
- The IDebugAdvanced2 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Advanced3
- The IDebugAdvanced3 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Client2
- The IDebugClient2 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Client3
- The IDebugClient3 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Client4
- The IDebugClient4 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Client5
- The IDebugClient5 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Control2
- The IDebugControl2 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Control3
- The IDebugControl3 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Control4
- The IDebugControl4 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Data2
- The IDebugDataSpaces2 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Data3
- The IDebugDataSpaces3 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Data4
- The IDebugDataSpaces4 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Registers2
- The IDebugRegisters2 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Symbols2
- The IDebugSymbols2 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_Symbols3
- The IDebugSymbols3 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_System2
- The IDebugSystemObjects2 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_System3
- The IDebugSystemObjects3 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_System4
- The IDebugSystemObjects4 interface pointer for the client object that can be used by the extension library. It is valid during the invocation of externally-called extension methods‑for example, the execution of an extension command, a call to ExtKnownStructMethod and ExtProvideValueMethod. This interface might not be available in all versions of the debugger engine.
- m_PtrSize
- The size of a pointer on the current target. If the target uses 32-bit pointers, m_PtrSize is 4. If the target uses 64-bit pointers, m_PtrSize is 8.
- m_AppendBuffer
- A character buffer used to return strings from the extension library to the engine. The size of this buffer is m_AppendBufferChars. The methods AppendBufferString, AppendStringVa, and AppendString can be used to write strings to this buffer.
- m_AppendBufferChars
- The size, in characters, of the buffer m_AppendBuffer.
Build machine: CAPEBUILD