extExtension 类 (engextcpp.hpp)

ExtExtension 类是表示 EngExtCpp 扩展库的 C++ 类的基类。

ExtExtension 类包含以下方法,子类可以使用这些方法:

初始化

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
警告
犯 错
谓词
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;
};

方法

ExtExtension 类具有以下方法。

 
ExtExtension::GetArgStr

GetArgStr 方法从用于调用当前扩展命令的命令行返回命名字符串参数。
ExtExtension::GetArgU64

GetArgU64 方法从用于调用当前扩展命令的命令行返回命名表达式参数的值。
ExtExtension::GetNumUnnamedArgs

GetNumUnnamedArgs 方法返回命令行中用于调用当前扩展命令的未命名参数数。
ExtExtension::GetRawArgStr

GetRawArgStr 方法返回表示传递给扩展命令的参数的字符串。
ExtExtension::GetUnnamedArgStr

GetUnnamedArgStr 方法从用于调用当前扩展命令的命令行返回未命名的字符串参数。
ExtExtension::GetUnnamedArgU64

GetUnnamedArgU64 方法从用于调用当前扩展命令的命令行返回未命名表达式参数的值。
ExtExtension::HasArg

HasArg 方法指示用于调用当前扩展命令的命令行中是否存在指定的命名参数。
ExtExtension::HasCharArg

HasCharArg 方法指示用于调用当前扩展命令的命令行中是否存在指定的单字符命名参数。
ExtExtension::HasUnnamedArg

HasUnnamedArg 方法指示用于调用当前扩展命令的命令行中是否存在指定的未命名参数。
ExtExtension::Initialize

Initialize 方法由引擎调用,用于在加载 EngExtCpp 扩展库后初始化它。
ExtExtension::OnSessionAccessible

OnSessionAccessible 方法由引擎调用,以在调试会话变得可访问时通知 EngExtCpp 扩展库。
ExtExtension::OnSessionActive

OnSessionActive 方法由引擎调用,以在调试会话处于活动状态时通知 EngExtCpp 扩展库。
ExtExtension::OnSessionInaccessible

OnSessionInaccessible 方法由引擎调用,以在调试会话不可访问时通知 EngExtCpp 扩展库。
ExtExtension::OnSessionInactive

OnSessionInactive 方法由引擎调用,以在调试会话变为非活动状态时通知 EngExtCpp 扩展库。
ExtExtension::SetArg

SetArg 方法为当前扩展命令设置命名参数。
ExtExtension::SetArgStr

SetArgStr 方法为当前表达式命令设置命名字符串参数。
ExtExtension::SetArgU64

SetArgU64 方法为当前表达式命令设置命名表达式参数。
ExtExtension::SetUnnamedArg

SetUnnamedArg 方法为当前扩展命令设置未命名的参数。
ExtExtension::SetUnnamedArgStr

SetUnnamedArgStr 方法为当前扩展命令设置未命名的字符串参数。
ExtExtension::SetUnnamedArgU64

SetUnnamedArgU64 方法设置当前扩展命令的未命名表达式参数的值。
ExtExtension::Uninitialize

引擎调用 Uninitialize 方法,以在卸载 EngExtCpp 扩展库之前取消初始化它。

要求

要求
目标平台 Windows
标头 engextcpp.hpp