次の方法で共有


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]自己への注意: 指定されたタグのデータ型がまだ固定されていない場合、このメソッドはタグのデータ型を設定および修正します。 これは、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

関連項目

IDebugFAEntryTags する

IDebugFailureAnalysis2

SetExtensionCommand

拡張する分析拡張機能プラグインの記述 !analyze

_EFN_Analyze