Partager via


Utilisation des commandes d’extension de débogueur

L’utilisation des commandes d’extension du débogueur est très similaire à l’utilisation des commandes de débogueur. La commande est tapée dans la fenêtre Commande du débogueur, ce qui produit une sortie dans cette fenêtre ou une modification de l’application cible ou de l’ordinateur cible.

Une commande d’extension de débogueur réelle est un point d’entrée dans une DLL appelée par le débogueur.

Les extensions de débogueur sont appelées par la syntaxe suivante :

! [module.]extension[arguments]

Le nom du module ne doit pas être suivi de l’extension de nom de fichier .dll. Si le module inclut un chemin d’accès complet, la limite de taille de chaîne par défaut est de 255 caractères.

Si le module n’a pas encore été chargé, il est chargé dans le débogueur à l’aide d’un appel à LoadLibrary(module). Une fois que le débogueur a chargé la bibliothèque d’extensions, il appelle la fonction GetProcAddress pour localiser le nom de l’extension dans le module d’extension. Le nom de l’extension respecte la casse et doit être entré exactement tel qu’il apparaît dans le fichier .def du module d’extension. Si l’adresse d’extension est trouvée, l’extension est appelée.

Ordre de recherche

Si le nom du module n’est pas spécifié, le débogueur recherche cette exportation dans les modules d’extension chargés.

L’ordre de recherche par défaut est le suivant :

  1. Modules d’extension qui fonctionnent avec tous les systèmes d’exploitation et dans les deux modes : Dbghelp.dll et winext\ext.dll.

  2. Module d’extension qui fonctionne dans tous les modes, mais qui est spécifique au système d’exploitation. Pour Windows XP et les versions ultérieures de Windows, il s’agit de winxp\exts.dll.

  3. Module d’extension qui fonctionne avec tous les systèmes d’exploitation, mais qui est spécifique au mode. Pour le mode noyau, il s’agit de winext\kext.dll. Pour le mode utilisateur, il s’agit winext\uext.dll.

  4. Module d’extension qui est à la fois spécifique au système d’exploitation et au mode. Le tableau suivant spécifie ce module.

Mode utilisateur Mode noyau
winxp \ ntsdexts.dll winxp \ kdexts.dll

Lorsqu’un module d’extension est déchargé, il est supprimé de la chaîne de recherche. Lorsqu’un module d’extension est chargé, il est ajouté au début de l’ordre de recherche. La commande .setdll (Définir la DLL d’extension par défaut) peut être utilisée pour promouvoir n’importe quel module en haut de la chaîne de recherche. En utilisant cette commande à plusieurs reprises, vous pouvez contrôler complètement la chaîne de recherche.

Utilisez la commande .chain (Répertorier les extensions de débogueur) pour afficher la liste de tous les modules d’extension chargés dans leur ordre de recherche actuel.

Si vous essayez d’exécuter une commande d’extension qui ne se trouve dans aucun des modules d’extension chargés, vous obtenez un message d’erreur Exporter introuvable.