次の方法で共有


分析拡張機能プラグインのメタデータ ファイル

分析拡張プラグインを作成するときは、プラグインを呼び出す必要がある状況を説明するメタデータ ファイルも作成します。 !analyze デバッガー コマンドを実行すると、メタデータ ファイルを使用して、読み込むプラグインが決定されます。

分析拡張機能プラグインと同じ名前と .alz の拡張子を持つメタデータ ファイルを作成します。 たとえば、分析拡張機能プラグインの名前が MyAnalyzer.dll の場合は、メタデータ ファイルに MyAnalyzer.alz という名前を付ける必要があります。 メタデータ ファイルを分析拡張機能プラグインと同じディレクトリに配置します。

分析拡張機能プラグインのメタデータ ファイルは、キーと値のペアを含む ASCII テキスト ファイルです。 キーと値は空白で区切られます。 キーには、空白以外の文字を使用できます。 キーでは大文字と小文字が区別されません。

キーと次の空白の後に、対応する値が開始されます。 値は次のいずれかの形式をとることができます。

  • 行の末尾までの任意の文字セット。 このフォームは、改行文字を含まない値に対して機能します。

    重要: メタデータ ファイルの最後の値にこの形式の値がある場合、行の末尾は改行文字である必要があります。

  • 中かっこ { } の間の任意の文字セット。 このフォームは、改行文字を含む値に対して機能します。

# で始まる行はコメントであり、無視されます。 コメントは、キーが必要な場所でのみ開始できます。

メタデータ ファイルでは、次のキーを使用できます。

キー 説明
PluginId 文字列 - プラグインを識別します。
DebuggeeClass 文字列 - 指定できる値は "Kernel" と "User" です。 プラグインがカーネル モードのエラーのみを分析するか、ユーザー モードのエラーのみを分析することを示します。
BugCheckCode 32 ビットバグチェックコード - プラグインがこの バグチェックコードの分析に関心があることを示します。 1 つのメタデータ ファイルで、複数のバグ チェック コードを指定できます。
ExceptionCode 32 ビット例外コード - プラグインがこの 例外コードの分析に関心があることを示します。 1 つのメタデータ ファイルに複数の例外コードを指定できます。
ExecutableName 文字列 - プラグインが、分析するプロセスの実行中の実行可能ファイルであるセッションにのみ関心があることを示します。 1 つのメタデータ ファイルで複数の実行可能ファイル名を指定できます。
ImageName 文字列 - 既定の分析でこのイメージ (dll、sys、または exe) がエラーであると見なされるセッションにのみプラグインが関心があることを示します。 このプラグインは、エラーが発生しているイメージが分析によって特定された後に呼び出されます。 1 つのメタデータ ファイルで複数のイメージ名を指定できます。
MaxTagCount 整数 - プラグインに必要なカスタム タグの最大数。 カスタム タグは、extsfns.h で定義されているタグ以外のタグです。

メタデータ ファイルの例

次のメタデータ ファイルでは、バグチェックコード 0xE2の分析に関心があるプラグインについて説明します。 (最後の行は改行文字で終わる必要があることを思い出してください。

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

次のメタデータ ファイルは、バグチェックの0x8、0x9、0xAの分析に関心があるプラグインMyDriver.sys、障害が発生したモジュールと見なされる場合について説明しています。

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0x8
BugCheckCode  0x9
BugCheckCode  0xA
ImageName     MyDriver.sys

次のメタデータ ファイルでは、MyApp.exeが分析対象のプロセスの実行中の実行可能ファイルである場合に0xC0000005例外コードの分析に関心があるプラグインについて説明します。 また、プラグインによって作成されるカスタム タグは 3 つまでです。

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Debugging Tools for Windows には、dbgexts.dllという名前のデバッガー拡張機能モジュールのビルドに使用できるサンプルがあります。 この拡張モジュールは、いくつかのデバッガー拡張機能コマンドを実装しますが、分析拡張機能プラグインとしても機能します。つまり _EFN_Analyze 関数をエクスポートします。 分析拡張機能プラグインとしてdbgexts.dllを記述するメタデータ ファイルを次に示します。

PluginId         PluginSample
DebuggeeClass   User
ExceptionCode   0xc0000005
ExecutableName      cdb.exe
ExecutableName      windbg.exe
#
# Custom tag descriptions 
#
TagDesc         0xA0000000  SAMPLE_PLUGIN_DEBUG_TEXT    {Sample debug help text from plug-in analysis}
#

関連項目

!analyze を拡張する分析拡張機能プラグインの作成

_EFN_Analyze

!analyze