ExtExtension類別是代表 EngExtCpp 擴充程式庫之 C++ 類別的基類。
ExtExtension類別包含下列方法,可供子類別使用:
IsUserMode
IsKernelMode
IsLiveLocalUser
IsMachine32
IsCurMachine32
IsMachine64
IsCurMachine64
Is32On64
CanQueryVirtual
HasFullMemBasic
IsExtensionRemote
AreOutputCallbacksDmlAware
RequireUserMode
RequireKernelMode
GetRawArgCopy
外
警告
犯 錯
動詞命令
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
DebugExtensionInitialize的 DbgEng 延伸模組初始化旗標。
m_KnownStructs
擴充程式庫能夠格式化輸出的 ExtKnownStruct 結構的陣列。 這個成員應該由 Initialize 方法設定,而且這個方法傳回之後不應該變更。
如果m_KnownStructs不是Null,陣列中最後一個 ExtKnownStruct結構的TypeName成員必須是Null。
格式化目標的輸出結構時,如果結構類型的名稱符合此陣列中其中一個ExtKnownStruct結構的TypeName成員,則會呼叫Method成員中指定的回呼函式來執行格式設定。
m_ProvidedValues
ExtProvidedValue結構的陣列,其中列出擴充程式庫可以提供值的虛擬暫存器。 這個成員應該由 Initialize 方法設定,而且這個方法傳回之後不應該變更。
如果m_ProvidedValues不是Null,陣列中最後一個 ExtProvidedValue結構的ValueName成員必須是Null。
評估虛擬暫存器時,如果虛擬暫存器的名稱符合此陣列中其中一個ExtProvidedValue結構的ValueName成員,則會呼叫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。