Compartir a través de


Archivos de metadatos para complementos de extensión de análisis

Al escribir un complemento de extensión de análisis, también se escribe un archivo de metadatos que describe las situaciones en las que desea que se llame al complemento. Cuando se ejecuta el comando !analyze debugger, usa archivos de metadatos para determinar qué complementos se van a cargar.

Cree un archivo de metadatos que tenga el mismo nombre que el complemento de extensión de análisis y una extensión de .alz. Por ejemplo, si el complemento de extensión de análisis se denomina MyAnalyzer.dll, el archivo de metadatos debe denominarse MyAnalyzer.alz. Coloque el archivo de metadatos en el mismo directorio que el complemento de extensión de análisis.

Un archivo de metadatos para un complemento de extensión de análisis es un archivo de texto ASCII que contiene pares clave-valor. Las claves y los valores están separados por espacios en blanco. Una tecla puede tener cualquier carácter que no sea de espacio en blanco. Las claves no distinguen mayúsculas de minúsculas.

Después de la clave y el siguiente espacio en blanco, comienza el valor correspondiente. Un valor puede tener uno de los siguientes formularios.

  • Cualquier conjunto de caracteres al final de la línea. Este formulario funciona para los valores que no contienen caracteres de nueva línea.

    Importante Si el último valor del archivo de metadatos tiene un valor de este formulario, la línea debe terminar con un carácter de nueva línea.

  • Cualquier conjunto de caracteres entre llaves { }. El formulario funciona para los valores que contienen caracteres de nueva línea.

Una línea que comienza por # es un comentario y se omite. Los comentarios solo pueden iniciar dónde se esperan las claves.

Puede usar las siguientes claves en un archivo de metadatos.

Clave Descripción
PluginId Cadena: identifica el complemento.
DebuggeeClass Cadena: los valores posibles son "Kernel" y "User". Indica que el complemento está interesado en analizar solo errores en modo kernel o solo errores en modo de usuario.
BugCheckCode Código de comprobación de errores de 32 bits: indica que el complemento está interesado en analizar este código de comprobación de errores. Un único archivo de metadatos puede especificar varios códigos de comprobación de errores.
ExceptionCode Código de excepción de 32 bits: indica que el complemento está interesado en analizar este código de excepción. Un único archivo de metadatos puede especificar varios códigos de excepción.
ExecutableName Cadena: indica que el complemento solo está interesado en las sesiones en las que se trata del ejecutable en ejecución del proceso que se va a analizar. Un único archivo de metadatos puede especificar varios nombres ejecutables.
ImageName String: indica que el complemento solo está interesado en las sesiones en las que el análisis predeterminado considera que esta imagen (dll, sys o exe) es errónea. El complemento se invoca después de que el análisis haya determinado qué imagen está en error. Un único archivo de metadatos puede especificar varios nombres de imagen.
MaxTagCount Entero: el número máximo de etiquetas personalizadas que necesita el complemento. Las etiquetas personalizadas son etiquetas distintas de las definidas en extsfns.h.

Archivos de metadatos de ejemplo

En el siguiente archivo de metadatos se describe un complemento que está interesado en analizar el código de comprobación de errores 0xE2. (Recuerde que la última línea debe terminar con un carácter de nueva línea).

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

En el siguiente archivo de metadatos se describe un complemento que está interesado en analizar las comprobaciones de errores 0x8, 0x9 y 0xA si MyDriver.sys se considera que es el módulo en caso de error.

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

En el siguiente archivo de metadatos se describe un complemento que está interesado en analizar el código de excepción 0xC0000005 si MyApp.exe es el ejecutable en ejecución del proceso que se está analizando. Además, el complemento puede crear hasta tres etiquetas personalizadas.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Herramientas de depuración para Windows tiene un ejemplo que puede usar para compilar un módulo de extensión del depurador denominado dbgexts.dll. Este módulo de extensión implementa varios comandos de extensión del depurador, pero también puede servir como complemento de extensión de análisis; es decir, exporta una función _EFN_Analyze . Este es un archivo de metadatos que describe dbgexts.dll como complemento de extensión de análisis.

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

Consulte también

Escribir un complemento de extensión de análisis para ampliar !analyze

_EFN_Analyze

!Analizar