Freigeben über


Metadatendateien für Analyseerweiterungs-Plug-Ins

Wenn Sie ein Analyseerweiterungs-Plug-In schreiben, schreiben Sie auch eine Metadatendatei, die die Situationen beschreibt, in denen Ihr Plug-In aufgerufen werden soll. Wenn der Befehl "!analysedebugger " ausgeführt wird, werden Metadatendateien verwendet, um zu bestimmen, welche Plug-Ins geladen werden sollen.

Erstellen Sie eine Metadatendatei mit demselben Namen wie Ihr Analyseerweiterungs-Plug-in und der Erweiterung ".alz". Wenn ihr Analyseerweiterungs-Plug-In beispielsweise MyAnalyzer.dllbenannt ist, muss die Metadatendatei "MyAnalyzer.alz" heißen. Platzieren Sie die Metadatendatei im selben Verzeichnis wie Ihr Analyseerweiterungs-Plug-In.

Eine Metadatendatei für ein Analyseerweiterungs-Plug-In ist eine ASCII-Textdatei, die Schlüsselwertpaare enthält. Schlüssel und Werte werden durch Leerzeichen getrennt. Ein Schlüssel kann ein beliebiges Nicht-Leerzeichen aufweisen. Bei Schlüsseln wird die Groß-/Kleinschreibung nicht beachtet.

Nach dem Schlüssel und dem folgenden Leerzeichen beginnt der entsprechende Wert. Ein Wert kann eines der folgenden Formulare aufweisen.

  • Jeder Satz von Zeichen bis zum Ende der Zeile. Dieses Formular funktioniert für Werte, die keine Zeilenumbrüche enthalten.

    Wichtig Wenn der letzte Wert in der Metadatendatei einen Wert dieses Formulars aufweist, muss die Zeile mit einem Zeilenumbruchzeichen enden.

  • Jeder Satz von Zeichen zwischen geschweiften Klammern { }. Das Formular funktioniert für Werte, die Neuzeilenzeichen enthalten.

Eine Zeile, die mit #beginnt, ist ein Kommentar und wird ignoriert. Kommentare dürfen nur an Stellen beginnen, an denen Schlüssel erwartet werden.

Sie können die folgenden Schlüssel in einer Metadatendatei verwenden.

Schlüssel BESCHREIBUNG
PluginId Zeichenfolge – Identifiziert das Plug-In.
DebuggeeClass Zeichenkette – Mögliche Werte sind "Kernel" und "User". Gibt an, dass das Plug-In daran interessiert ist, nur Kernelmodusfehler oder nur Benutzermodusfehler zu analysieren.
BugCheckCode 32-Bit-Fehlerüberprüfungscode – Gibt an, dass das Plug-In daran interessiert ist, diesen Fehlerüberprüfungscode zu analysieren. Eine einzelne Metadatendatei kann mehrere Fehlerüberprüfungscodes angeben.
ExceptionCode 32-Bit-Ausnahmecode – Gibt an, dass das Plug-In daran interessiert ist, diesen Ausnahmecode zu analysieren. Eine einzelne Metadatendatei kann mehrere Ausnahmecodes angeben.
ExecutableName String – Gibt an, dass das Plug-In nur an Sitzungen interessiert ist, in denen dies die laufende ausführbare Datei des zu analysierenden Prozesses ist. Eine einzelne Metadatendatei kann mehrere ausführbare Namen angeben.
Bildname String - Gibt an, dass das Plug-In nur an Sitzungen interessiert ist, in denen die Standardanalyse dieses Bild (dll, sys oder exe) als fehlerhaft betrachtet. Das Plug-In wird aufgerufen, nachdem die Analyse festgestellt hat, welches Bild fehlerhaft ist. Eine einzelne Metadatendatei kann mehrere Bildnamen angeben.
MaxTagCount Ganze Zahl : Die maximale Anzahl von benutzerdefinierten Tags, die das Plug-In benötigt. Benutzerdefinierte Tags sind andere Tags als die in extsfns.h definierten Tags.

Beispielmetadatendateien

Die folgende Metadatendatei beschreibt ein Plug-In, das daran interessiert ist, Fehlerüberprüfungscode 0xE2 zu analysieren. (Erinnern Sie sich daran, dass die letzte Zeile mit einem Zeilenumbruchzeichen enden muss.)

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

Die folgende Metadatendatei beschreibt ein Plug-In, das daran interessiert ist, Fehlerüberprüfungen 0x8, 0x9 und 0xA zu analysieren, wenn MyDriver.sys als das fehlerhafte Modul betrachtet wird.

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

Die folgende Metadatendatei beschreibt ein Plug-In, das daran interessiert ist, Ausnahmecode 0xC0000005 zu analysieren, wenn MyApp.exe die ausgeführte ausführbare Datei des zu analysierenden Prozesses ist. Außerdem kann das Plug-In bis zu drei benutzerdefinierte Tags erstellen.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Die Debugtools für Windows verfügen über ein Beispiel, mit dem Sie ein Debuggererweiterungsmodul mit dem Namen dbgexts.dllerstellen können. Dieses Erweiterungsmodul implementiert mehrere Debuggererweiterungsbefehle, kann aber auch als Analyseerweiterungs-Plug-In dienen; d. h., sie exportiert eine _EFN_Analyze Funktion. Hier ist eine Metadatendatei, die dbgexts.dll als Analyseerweiterungs-Plug-In beschreibt.

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}
#

Siehe auch

Schreiben eines Analysis Extension Plug-Ins zum Erweitern von !analyze

_EFN_Analyze

!analyze