IDebugFailureAnalysis2::AddExtensionCommand 方法 (extsfns.h)
AddExtensionCommand 方法會將新的 FA 專案 新增至 DebugFailureAnalysis 物件,並將 FA 專案的數據區塊設定為指定的調試程式命令。
語法
PFA_ENTRY AddExtensionCommand(
FA_TAG Tag,
[in] PCSTR Extension
);
參數
Tag
FA_TAG 列舉中的值。 與這個標記相關聯的數據類型必須 DEBUG_FA_ENTRY_EXTENSION_CMD 或 DEBUG_FA_ENTRY_ANSI_STRING。
[in] Extension
以 Null 終止的 ANSI 字串指標,這是調試程式命令。 調試程式命令的範例是 “!analyze -v”。
傳回值
如果此方法成功,它會傳回新 FA_ENTRY 結構的指標。 如果此方法失敗,它會傳回 NULL 。
言論
這個方法會將新 FA_ENTRY 結構的 DataSize 成員設定為延伸模組命令的長度,以位元組為單位,包括 NULL 終止符。
每個標記都會與 FA_ENTRY_TYPE 列舉中的其中一個數據類型相關聯。 若要判斷與標記相關聯的數據類型,請呼叫 IDebugFAEntryTags 介面的 GetType 方法。
若要取得 IDebugFAEntryTags 介面的指標,請呼叫 IDebugFailureAnalysis2 介面的 GetDebugFATagControl 方法。
[sperry]注意 Self:如果指定的標記尚未修正其數據類型,這個方法會設定並修正標記的數據類型。 如果 DebugFailureAnalysis 物件還沒有具有這個標記的 FA 專案,就會發生這種情況。 但是,如果 DebugFailureAnalysis 對象已經有具有此標記的 FA 專案,則標記的數據類型是固定的。 這個方法會建立具有相同標記的新FA專案。 現在,如果我們嘗試寫入新數據緩衝區的數據類型不符合這個標記已修正的數據類型,該怎麼辦。 然後,我們看到是否可以從固定數據類型轉換成我們想要寫入的類型。
在ULONG64、POINTER 和 InstructionOffset 之間轉換是可以的。 在 String 和 ExtensionCommand 之間轉換是可以的。 ULONG 只能是ULONG。 STRING 只能是 STRING。
問題:標記的數據類型何時會修正? 建立具有該標籤的第一個FA專案時,是否為此專案?
typedef struct _FA_TAG_PROPS
{
FA_TAG Tag;
FA_ENTRY_TYPE Type;
ULONG Fixed:1;
ULONG NameAllocated:1;
ULONG DescriptionAllocated:1;
PCSTR Name;
PCSTR Description;
AnalysisPlugIn *Plugin;
} FA_TAG_PROPS, *PFA_TAG_PROPS;
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | extsfns.h |