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