Sdílet prostřednictvím


Soubory metadat pro pluginové moduly rozšíření pro analýzu

Při tvorbě analytického plug-inu také vytvoříte soubor metadat, který popisuje situace, při nichž chcete, aby byl plug-in vyvolán. Když se spustí příkaz !analyze debugger, použije soubory metadat k určení, které moduly plug-in se mají načíst.

Vytvořte soubor metadat, který má stejný název jako vaše rozšíření plug-in pro analýzu a příponu .alz. Pokud má například modul plug-in rozšíření analýzy název MyAnalyzer.dll, váš soubor metadat musí mít název MyAnalyzer.alz. Umístěte soubor metadat do stejného adresáře jako modul plug-in s příponou analýzy.

Soubor metadat pro rozšíření analýzy plug-inu je textový soubor ve formátu ASCII, který obsahuje páry klíč-hodnota. Klíče a hodnoty jsou oddělené prázdným znakem. Klíč může mít jakýkoli jiný než prázdný znak. Klíče nerozlišují malá a velká písmena.

Za klíčem a následujícím prázdným znakem začíná odpovídající hodnota. Hodnota může mít jeden z následujících formulářů.

  • Jakákoli sada znaků až do konce řádku. Tento formulář funguje pro hodnoty, které neobsahují žádné znaky nového řádku.

    Důležité Pokud má poslední hodnota v souboru metadat hodnotu tohoto formátu, musí řádek končit znakem nového řádku.

  • Libovolná sada znaků mezi složenými závorkami { }. Formulář funguje pro hodnoty, které obsahují znaky pro nový řádek.

Řádek začínající znakem # je komentář a je ignorován. Komentáře mohou začínat pouze tam, kde se očekávají klíče.

V souboru metadat můžete použít následující klíče.

Klíč Popis
PluginId Řetězec – identifikuje modul plug-in.
DebuggeeClass Řetězec – Možné hodnoty jsou „Jádro“ a „Uživatel“. Označuje, že modul plug-in má zájem o analýzu pouze selhání režimu jádra nebo pouze selhání uživatelského režimu.
BugCheckCode 32bitový kód kontroly chyb – indikuje, že modul plug-in má zájem o analýzu tohoto kódu kontroly chyb. Jeden soubor metadat může určovat více kódů kontroly chyb.
Kód výjimky 32bitový kód výjimky – indikuje, že modul plug-in má zájem o analýzu tohoto kódu výjimky. Jeden soubor metadat může určovat více kódů výjimek.
Název spustitelného souboru Řetězec – Označuje, že modul plug-in má zájem pouze o relace, ve kterých se jedná o spuštěný spustitelný soubor procesu, který se má analyzovat. Jeden soubor metadat může zadat více spustitelných názvů.
Název obrázku Řetězec - Označuje, že modul plug-in má zájem pouze o relace, kde výchozí analýza považuje tuto binární podobu (dll, sys nebo exe) za chybnou. Plug-in je vyvolán po analýze, která určila, který snímek je chybný. Jeden soubor metadat může zadat více názvů obrázků.
MaxTagCount Celé číslo – maximální počet vlastních značek, které plugin vyžaduje. Vlastní značky jsou jiné než značky definované v extsfns.h.

Příklady souborů metadat

Následující soubor metadat popisuje modul plug-in, který má zájem o analýzu kódu kontroly chyb 0xE2. (Vzpomeňte si, že poslední řádek musí končit znakem nového řádku.)

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

Následující soubor metadat popisuje modul plug-in, který se zajímá o analýzu kontrol chyb 0x8, 0x9 a 0xA, pokud se MyDriver.sys považuje za chybný modul.

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

Následující soubor metadat popisuje modul plug-in, který se zabývá analýzou kódu výjimky 0xC0000005, pokud MyApp.exe je spuštěný program analyzovaného procesu. Modul plug-in může také vytvořit až tři vlastní značky.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Nástroje ladění pro Windows mají ukázku, kterou můžete použít k sestavení modulu rozšíření ladicího programu s názvem dbgexts.dll. Tento modul rozšíření implementuje několik příkazů rozšíření ladicího programu, ale může sloužit také jako plugin pro analýzu; to znamená, že exportuje funkci _EFN_Analyze. Tady je soubor metadat, který popisuje dbgexts.dll jako zásuvný modul pro rozšíření analýzy.

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

Viz také

Zápis modulu plug-in rozšíření analýzy pro rozšíření !analyze

_EFN_Analyze

!analyze