Fichiers de métadonnées pour les plug-ins d’extension d’analyse

Lorsque vous écrivez un plug-in d’extension d’analyse, vous écrivez également un fichier de métadonnées qui décrit les situations pour lesquelles vous souhaitez que votre plug-in soit appelé. Lorsque la commande !analyze debugger s’exécute, elle utilise des fichiers de métadonnées pour déterminer les plug-ins à charger.

Créez un fichier de métadonnées portant le même nom que votre plug-in d’extension d’analyse et une extension de .alz. Par exemple, si votre plug-in d’extension d’analyse est nommé MyAnalyzer.dll, votre fichier de métadonnées doit être nommé MyAnalyzer.alz. Placez le fichier de métadonnées dans le même répertoire que votre plug-in d’extension d’analyse.

Un fichier de métadonnées pour un plug-in d’extension d’analyse est un fichier texte ASCII qui contient des paires clé-valeur. Les clés et les valeurs sont séparées par des espaces blancs. Une clé peut avoir n’importe quel caractère non-espace blanc. Les clés ne respectent pas la casse.

Après la clé et l’espace blanc suivant, la valeur correspondante commence. Une valeur peut avoir l’une des formes suivantes.

  • Tout ensemble de caractères à la fin de la ligne. Ce formulaire fonctionne pour les valeurs qui ne contiennent pas de caractères de nouvelle ligne.

    Important Si la dernière valeur du fichier de métadonnées a une valeur de cette forme, la ligne doit se terminer par un caractère de nouvelle ligne.

  • Tout ensemble de caractères entre accolades { }. Le formulaire fonctionne pour les valeurs qui contiennent des caractères de nouvelle ligne.

Une ligne commençant par # est un commentaire et est ignorée. Les commentaires ne peuvent démarrer que là où les clés sont attendues.

Vous pouvez utiliser les clés suivantes dans un fichier de métadonnées.

Clé Description
PluginId Chaîne : identifie le plug-in.
DebuggeeClass Chaîne : les valeurs possibles sont « Kernel » et « User ». Indique que le plug-in est intéressé par l’analyse uniquement des échecs en mode noyau ou uniquement des échecs en mode utilisateur.
BugCheckCode Code case activée de bogue 32 bits : indique que le plug-in est intéressé par l’analyse de ce bogue case activée code. Un seul fichier de métadonnées peut spécifier plusieurs codes de case activée de bogues.
ExceptionCode Code d’exception 32 bits : indique que le plug-in souhaite analyser ce code d’exception. Un fichier de métadonnées unique peut spécifier plusieurs codes d’exception.
ExecutableName Chaîne : indique que le plug-in s’intéresse uniquement aux sessions où il s’agit de l’exécutable en cours d’exécution du processus à analyser. Un fichier de métadonnées unique peut spécifier plusieurs noms exécutables.
ImageName Chaîne : indique que le plug-in s’intéresse uniquement aux sessions où l’analyse par défaut considère que cette image (dll, sys ou exe) est en cause. Le plug-in est appelé une fois que l’analyse a déterminé quelle image est en cause. Un seul fichier de métadonnées peut spécifier plusieurs noms d’image.
MaxTagCount Integer : nombre maximal d’étiquettes personnalisées dont le plug-in a besoin. Les balises personnalisées sont des balises autres que celles définies dans extsfns.h.

Exemples de fichiers de métadonnées

Le fichier de métadonnées suivant décrit un plug-in qui s’intéresse à l’analyse des bogues case activée code 0xE2. (Rappelez-vous que la dernière ligne doit se terminer par un caractère de nouvelle ligne.)

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

Le fichier de métadonnées suivant décrit un plug-in qui s’intéresse à l’analyse des vérifications de bogues 0x8, 0x9 et 0xA si MyDriver.sys est considéré comme le module en cause.

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

Le fichier de métadonnées suivant décrit un plug-in qui s’intéresse à l’analyse du code d’exception 0xC0000005 si MyApp.exe est l’exécutable en cours d’exécution du processus analysé. En outre, le plug-in peut créer autant que trois balises personnalisées.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Outils de débogage pour Windows contient un exemple que vous pouvez utiliser pour générer un module d’extension de débogueur nommé dbgexts.dll. Ce module d’extension implémente plusieurs commandes d’extension de débogueur, mais il peut également servir de plug-in d’extension d’analyse ; autrement dit, il exporte une fonction _EFN_Analyze . Voici un fichier de métadonnées qui décrit dbgexts.dll en tant que plug-in d’extension d’analyse.

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

Voir aussi

Écriture d’un plug-in d’extension d’analyse pour étendre !analyser

_EFN_Analyze

!Analyser