Udostępnij przez


Pliki metadanych dla wtyczek rozszerzeń analizy

Podczas pisania wtyczki rozszerzenia analizy należy również napisać plik metadanych opisujący sytuacje, w których ma być wywoływana wtyczka. Po uruchomieniu polecenia !analyze debugger użyje plików metadanych, aby określić, które wtyczki mają być ładowane.

Utwórz plik metadanych o tej samej nazwie co twój plug-in rozszerzenia analizy z rozszerzeniem .alz. Jeśli na przykład wtyczka rozszerzenia analizy nosi nazwę MyAnalyzer.dll, plik metadanych musi mieć nazwę MyAnalyzer.alz. Umieść plik metadanych w tym samym katalogu co wtyczka rozszerzenia analizy.

Plik metadanych dla wtyczki rozszerzenia analizy jest plikiem tekstowym ASCII zawierającym pary klucz-wartość. Klucze i wartości są oddzielone białym znakiem. Klucz może mieć dowolny znak inny niż biały. Klucze nie są wrażliwe na wielkość liter.

Po kluczu i następującej białej spacji rozpoczyna się odpowiednia wartość. Wartość może mieć jedną z następujących form.

  • Dowolny zestaw znaków na końcu wiersza. Ten formularz działa w przypadku wartości, które nie zawierają żadnych znaków nowego wiersza.

    Ważne Jeśli ostatnia wartość w pliku metadanych ma wartość tej formy, wiersz powinien kończyć się znakiem nowego wiersza.

  • Dowolny zestaw znaków między nawiasami klamrowymi { }. Formularz działa dla wartości zawierających znaki nowej linii.

Wiersz rozpoczynający się od # jest komentarzem i jest ignorowany. Komentarze mogą zaczynać się tylko tam, gdzie są oczekiwane klucze.

W pliku metadanych można użyć następujących kluczy.

Klawisz Opis
PluginId Ciąg — identyfikuje wtyczkę.
DebuggeeClass Ciąg — możliwe wartości to "Jądro" i "Użytkownik". Wskazuje, że wtyczka jest zainteresowana analizowaniem tylko błędów trybu jądra lub tylko awarii trybu użytkownika.
KodKontroliBłędu 32-bitowy kod sprawdzania usterek — wskazuje, że wtyczka jest zainteresowana analizowaniem tego kodu sprawdzania błędów. Pojedynczy plik metadanych może określać wiele kodów sprawdzania błędów.
Kod wyjątku 32-bitowy kod wyjątku — wskazuje, że wtyczka jest zainteresowana analizowaniem tego kodu wyjątku. Pojedynczy plik metadanych może określać wiele kodów wyjątków.
Nazwa pliku wykonywalnego String — wskazuje, że wtyczka jest zainteresowana tylko sesjami, w których jest to uruchomiony plik wykonywalny procesu do przeanalizowania. Pojedynczy plik metadanych może określać wiele nazw wykonywalnych.
Nazwa obrazu Ciąg — wskazuje, że wtyczka jest zainteresowana tylko sesjami, w których domyślna analiza uwzględnia ten obraz (dll, sys lub exe) jako uszkodzony. Wtyczka jest wywoływana po analizie, która ustali, który obraz jest uszkodzony. Pojedynczy plik metadanych może określać wiele nazw obrazów.
MaxTagCount Liczba całkowita — maksymalna liczba tagów niestandardowych, których potrzebuje wtyczka. Tagi niestandardowe to tagi inne niż te zdefiniowane w pliku extsfns.h.

Przykładowe pliki metadanych

Poniższy plik metadanych opisuje wtyczkę, która jest zainteresowana analizowaniem kodu sprawdzania błędów 0xE2. (Pamiętaj, że ostatni wiersz musi kończyć się znakiem nowego wiersza).

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

W poniższym pliku metadanych opisano wtyczkę, która jest zainteresowana analizowaniem testów błędów 0x8, 0x9 i 0xA, jeśli MyDriver.sys jest uważana za uszkodzony moduł.

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

Poniższy plik metadanych opisuje wtyczkę, która interesuje się analizowaniem kodu wyjątku 0xC0000005, jeśli MyApp.exe jest uruchomionym plikiem wykonywalnym analizowanego procesu. Ponadto wtyczka może tworzyć maksymalnie trzy tagi niestandardowe.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Narzędzia debugowania dla systemu Windows mają przykład, którego można użyć do utworzenia modułu rozszerzenia debugera o nazwie dbgexts.dll. Ten moduł rozszerzenia implementuje kilka poleceń rozszerzenia debugera, ale może również służyć jako wtyczka rozszerzenia analizy; oznacza to, że eksportuje funkcję _EFN_Analyze . Oto plik metadanych, który opisuje dbgexts.dll jako wtyczkę rozszerzenia analizy.

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

Zobacz także

Tworzenie wtyczki rozszerzającej funkcje !analyze

_EFN_Analyze

!analyze