Condividi tramite


File di metadati per i plug-in dell'estensione di analisi

Quando si scrive un plug-in di estensione di analisi, si scrive anche un file di metadati che descrive le situazioni per cui si vuole chiamare il plug-in. Quando viene eseguito il comando !analyze debugger, usa i file di metadati per determinare quali plug-in caricare.

Creare un file di metadati con lo stesso nome del plug-in dell'estensione di analisi e un'estensione di .alz. Ad esempio, se il plug-in dell'estensione di analisi è denominato MyAnalyzer.dll, il file di metadati deve essere denominato MyAnalyzer.alz. Inserire il file di metadati nella stessa directory del plug-in dell'estensione di analisi.

Un file di metadati per un plug-in di estensione di analisi è un file di testo ASCII che contiene coppie chiave-valore. Le chiavi e i valori sono separati da spazi vuoti. Una chiave può avere qualsiasi carattere non di spazio vuoto. Le chiavi non fanno distinzione tra maiuscole e minuscole.

Dopo la chiave e lo spazio vuoto seguente, inizia il valore corrispondente. Un valore può avere uno dei formati seguenti.

  • Qualsiasi set di caratteri alla fine della riga. Questo modulo funziona per i valori che non contengono caratteri di nuova riga.

    Importante Se l'ultimo valore nel file di metadati ha un valore di questo modulo, la riga deve terminare con un carattere di nuova riga.

  • Qualsiasi set di caratteri tra parentesi graffe { }. Il modulo funziona per i valori che contengono caratteri di nuova riga.

Una riga che inizia con # è un commento e viene ignorata. I commenti possono iniziare solo dove sono previste le chiavi.

È possibile usare le chiavi seguenti in un file di metadati.

Chiave Descrizione
PluginId Stringa: identifica il plug-in.
DebuggeeClass Stringa: i valori possibili sono "Kernel" e "User". Indica che il plug-in è interessato ad analizzare solo errori in modalità kernel o solo errori in modalità utente.
BugCheckCode Codice di controllo dei bug a 32 bit - Indica che il plug-in è interessato ad analizzare il codice di controllo di bug. Un singolo file di metadati può specificare più codici di controllo dei bug.
ExceptionCode Codice eccezione a 32 bit : indica che il plug-in è interessato ad analizzare questo codice eccezione. Un singolo file di metadati può specificare più codici di eccezione.
ExecutableName Stringa : indica che il plug-in è interessato solo alle sessioni in cui si tratta dell'eseguibile in esecuzione del processo da analizzare. Un singolo file di metadati può specificare più nomi eseguibili.
ImageName String - Indica che il plug-in è interessato solo alle sessioni in cui l'analisi predefinita considera l'immagine (dll, sys o exe) in modo che sia in errore. Il plug-in viene richiamato dopo che l'analisi ha determinato quale immagine è in errore. Un singolo file di metadati può specificare più nomi di immagine.
MaxTagCount Integer: numero massimo di tag personalizzati necessari per il plug-in. I tag personalizzati sono tag diversi da quelli definiti in extsfns.h.

File di metadati di esempio

Il file di metadati seguente descrive un plug-in che è interessato ad analizzare il codice di controllo dei bug 0xE2. Tenere presente che l'ultima riga deve terminare con un carattere di nuova riga.

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

Il file di metadati seguente descrive un plug-in che è interessato ad analizzare i controlli di bug 0x8, 0x9 e 0xA se MyDriver.sys è considerato il modulo in errore.

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

Il file di metadati seguente descrive un plug-in che è interessato ad analizzare il codice di eccezione 0xC0000005 se MyApp.exe è l'eseguibile in esecuzione del processo da analizzare. Inoltre, il plug-in potrebbe creare fino a tre tag personalizzati.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Strumenti di debug per Windows include un esempio che è possibile usare per compilare un modulo di estensione del debugger denominato dbgexts.dll. Questo modulo di estensione implementa diversi comandi di estensione del debugger, ma può anche fungere da plug-in di estensione di analisi; ovvero esporta una funzione _EFN_Analyze . Ecco un file di metadati che descrive dbgexts.dll come plug-in di estensione di analisi.

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

Vedi anche

Scrittura di un plug-in di estensione di analisi per estendere !analyze

_EFN_Analyze

!Analizzare