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;
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | extsfns.h |