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