Écriture d’extensions EngExtCpp
La bibliothèque d’extensions EngExtCpp peut inclure n’importe quel code C++ standard. Il peut également inclure les interfaces C++ qui apparaissent dans les fichiers d’en-tête engextcpp.h et dbgeng.h, en plus des fonctions C qui apparaissent dans le fichier d’en-tête wdbgexts.h. Dbgeng.h et wdbgexts.h sont inclus dans engextcpp.h.
Pour obtenir la liste complète des interfaces dans dbgeng.h qui peuvent être utilisées dans une commande d’extension, consultez Référence du moteur de débogueur.
Pour obtenir la liste complète des fonctions dans wdbgexts.h qui peuvent être utilisées dans une commande d’extension, consultez Fonctions WdbgExts. Un certain nombre de ces fonctions apparaissent dans les versions 32 bits et 64 bits. En règle générale, les versions 64 bits se terminent par « 64 » et les versions 32 bits n’ont pas de fin numérique, par exemple ReadIoSpace64 et ReadIoSpace. Lorsque vous appelez une fonction wdbgexts.h à partir d’une extension DbgEng, vous devez toujours utiliser le nom de la fonction se terminant par « 64 ». En effet, le moteur du débogueur utilise toujours des pointeurs 64 bits en interne, quelle que soit la plateforme cible. Lors de l’inclusion de wdbgexts.h, engextcpp.h sélectionne la version 64 bits de l’API. La variable globale ExtensionApis utilisée par l’API WDbgExts est automatiquement initialisée à l’entrée dans une méthode EngExtCpp et effacée à la sortie.
Quand une extension EngExtCpp est utilisée avec des interfaces DbgEng distantes, les interfaces WDbgExts ne sont pas disponibles et la structure ExtensionApis peut être mise à zéro. Si une extension EngExtCpp est censée fonctionner dans un tel environnement, elle doit éviter d’utiliser l’API WDbgExts.
Note Vous ne devez pas essayer d’appeler des routines DbgHelp ou ImageHlp à partir d’une extension de débogueur. L’appel de ces routines n’est pas pris en charge et peut entraîner divers problèmes.