ExtExtension class (engextcpp.hpp)

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:

Initialize

Uninitialize

OnSessionActive

OnSessionInactive

OnSessionAccessible

OnSessionInaccessible

IsUserMode
IsKernelMode
IsLiveLocalUser
IsMachine32
IsCurMachine32
IsMachine64
IsCurMachine64
Is32On64
CanQueryVirtual
HasFullMemBasic
IsExtensionRemote
AreOutputCallbacksDmlAware
RequireUserMode
RequireKernelMode

GetNumUnnamedArgs

GetUnnamedArgStr

GetUnnamedArgU64

HasUnnamedArg

GetArgStr

GetArgU64

HasArg

HasCharArg

SetUnnamedArg

SetUnnamedArgStr

SetUnnamedArgU64

SetArg

SetArgStr

SetArgU64

GetRawArgStr

GetRawArgCopy
Out
Warn
Err
Verb
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
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;
};

Methods

The ExtExtension class has these methods.

 
ExtExtension::GetArgStr

The GetArgStr method returns a named string argument from the command line used to invoke the current extension command.
ExtExtension::GetArgU64

The GetArgU64 method returns the value of a named expression argument from the command line used to invoke the current extension command.
ExtExtension::GetNumUnnamedArgs

The GetNumUnnamedArgs method returns the number of unnamed arguments in the command line used to invoke the current extension command.
ExtExtension::GetRawArgStr

The GetRawArgStr method returns a string that represents the arguments passed to the extension command.
ExtExtension::GetUnnamedArgStr

The GetUnnamedArgStr method returns an unnamed string argument from the command line used to invoke the current extension command.
ExtExtension::GetUnnamedArgU64

The GetUnnamedArgU64 method returns the value of an unnamed expression argument from the command line used to invoke the current extension command.
ExtExtension::HasArg

The HasArg method indicates whether a specified named argument is present in the command line used to invoke the current extension command.
ExtExtension::HasCharArg

The HasCharArg method indicates whether a specified single-character named argument is present in the command line used to invoke the current extension command.
ExtExtension::HasUnnamedArg

The HasUnnamedArg method indicates whether a specified unnamed argument is present in the command line used to invoke the current extension command.
ExtExtension::Initialize

The Initialize method is called by the engine to initialize an EngExtCpp extension library after loading it.
ExtExtension::OnSessionAccessible

The OnSessionAccessible method is called by the engine to inform the EngExtCpp extension library when the debugging session becomes accessible.
ExtExtension::OnSessionActive

The OnSessionActive method is called by the engine to inform the EngExtCpp extension library when the debugging session becomes active.
ExtExtension::OnSessionInaccessible

The OnSessionInaccessible method is called by the engine to inform the EngExtCpp extension library when the debugging session becomes inaccessible.
ExtExtension::OnSessionInactive

The OnSessionInactive method is called by the engine to inform the EngExtCpp extension library when the debugging session becomes inactive.
ExtExtension::SetArg

The SetArg method sets a named argument for the current extension command.
ExtExtension::SetArgStr

The SetArgStr method sets a named string argument for the current expression command.
ExtExtension::SetArgU64

The SetArgU64 method sets a named expression argument for the current expression command.
ExtExtension::SetUnnamedArg

The SetUnnamedArg method sets an unnamed argument for the current extension command.
ExtExtension::SetUnnamedArgStr

The SetUnnamedArgStr method sets an unnamed string argument for the current extension command.
ExtExtension::SetUnnamedArgU64

The SetUnnamedArgU64 method sets the value of an unnamed expression argument for the current extension command.
ExtExtension::Uninitialize

The Uninitialize method is called by the engine to uninitialize an EngExtCpp extension library before it is unloaded.

Requirements

Requirement Value
Target Platform Windows
Header engextcpp.hpp