Partager via


Environnements de débogage

Six environnements de débogage sont disponibles :

  • WinDbg
  • WinDbg (classique)
  • Débogueur noyau (KD)
  • NTKD
  • Débogueur console (CDB)
  • Débogueur symbolique NT (NTSD)

Les sections suivantes décrivent les environnements de débogage.

WinDbg

WinDbg est la dernière version de WinDbg avec une interface moderne, des fenêtres plus rapides et une expérience de script complète, construite autour du modèle de données de débogueur extensible. WinDbg utilise le même moteur sous-jacent que WinDbg (Classique), donc toutes les commandes, extensions et workflows auxquels vous êtes habitués fonctionneront toujours comme avant.

Pour plus d’informations, veuillez consulter les Fonctionnalités de WinDbg.

WinDbg (classique)

Microsoft Windows Debugger WinDbg (Classique) est un débogueur basé sur Windows capable de déboguer à la fois en mode utilisateur et en mode noyau. WinDbg offre un débogage pour le noyau Windows, les pilotes en mode noyau et les services système, ainsi que les applications et les pilotes en mode utilisateur.

WinDbg utilise les formats de symboles de débogage de Visual Studio pour le débogage au niveau du code source. Il peut accéder à n’importe quel symbole ou variable à partir d’un module qui possède des fichiers de symboles PDB et peut accéder au nom de n’importe quelle fonction publique exposée par des modules compilés avec des fichiers de symboles COFF (comme les fichiers .dbg Windows).

WinDbg peut afficher le code source, définir des points d’arrêt, afficher des variables (comme des objets C++), des arborescences d’appels de procédure et de la mémoire. Sa fenêtre de commande de débogueur permet à l’utilisateur d’émettre une grande variété de commandes.

Pour le débogage en mode noyau, WinDbg nécessite généralement deux ordinateurs (l’ordinateur hôte et l’ordinateur cible). WinDbg prend également en charge diverses options de débogage à distance pour les cibles en mode utilisateur et en mode noyau.

WinDbg est l’équivalent graphique de CDB/NTSD et de KD/NTKD.

KD

Microsoft Kernel Debugger (KD) est un programme en ligne de commande basé sur des caractères qui permet une analyse approfondie de l’activité en mode noyau sur tous les systèmes d’exploitation basés sur NT. Vous pouvez utiliser KD pour déboguer des composants et des pilotes en mode noyau ou surveiller le comportement du système d’exploitation lui-même. KD prend également en charge le débogage multi-processeur.

En règle générale, KD ne s’exécute pas sur l’ordinateur en cours de débogage. Vous avez besoin de deux ordinateurs (l’ordinateur hôte et l’ordinateur cible) pour le débogage en mode noyau.

NTKD

Il existe une variation du débogueur KD appelée NTKD. Il est identique à KD à tous égards, sauf qu’il crée une nouvelle fenêtre de texte lorsqu’il est démarré, tandis que KD hérite de la fenêtre de l’invite de commande à partir de laquelle il a été invoqué.

CDB

Microsoft Console Debugger (CDB) est un programme en ligne de commande basé sur des caractères qui permet l’analyse de bas niveau de la mémoire et des structures en mode utilisateur de Windows. Le nom Débogueur en ligne de commande indique que CDB est classé comme une application en ligne de commande. Cela n’implique pas que l’application cible doit être une application en ligne de commande. En fait, CDB est entièrement capable de déboguer à la fois des applications en ligne de commande et des programmes Windows avec une interface graphique.

CDB est extrêmement puissant pour déboguer un programme qui est en cours d’exécution ou qui vient de planter (analyse en direct), mais simple à configurer. Il peut être utilisé pour étudier le comportement d’une application en cours de fonctionnement. Dans le cas d’une application défaillante, CDB peut être utilisé pour obtenir une arborescence d’appels de procédure ou pour examiner les paramètres en faute. Il fonctionne bien via un réseau (en utilisant un serveur d’accès distant), car il est basé sur des caractères.

Avec CDB, vous pouvez afficher et exécuter du code de programme, définir des points d’arrêt, et examiner et modifier des valeurs en mémoire. CDB peut analyser le code binaire en le désassemblant et en affichant les instructions d’assemblage. Il peut également analyser directement le code source.

Comme CDB peut accéder à des emplacements mémoire par des adresses ou des symboles globaux, vous pouvez faire référence à des données et instructions par leur nom plutôt que par leur adresse, ce qui facilite la localisation et le débogage de sections spécifiques de code. CDB prend en charge le débogage de plusieurs threads et processus. Il est extensible et peut lire et écrire à la fois dans la mémoire paginée et non paginée.

Si l’application cible est elle-même une application en ligne de commande, la cible partagera la fenêtre de la console avec CDB. Pour créer une nouvelle fenêtre de console séparée pour une application cible en ligne de commande, utilisez l’option de ligne de commande -2.

NTSD

Il existe une variation du débogueur CDB appelée Microsoft NT Symbolic Debugger (NTSD). Il est identique à CDB à tous égards, sauf qu’il crée une nouvelle fenêtre de texte lorsqu’il est démarré, tandis que CDB hérite de la fenêtre de l’invite de commande à partir de laquelle il a été invoqué.

Comme la commande start peut également être utilisée pour créer une nouvelle fenêtre de console, les deux constructions suivantes donneront les mêmes résultats :

start cdb parameters
ntsd parameters

Il est possible de rediriger l’entrée et la sortie de NTSD (ou CDB) afin qu’elles puissent être contrôlées à partir d’un débogueur noyau (que ce soit Visual Studio, WinDbg ou KD). Si cette technique est utilisée avec NTSD, aucune fenêtre de console n’apparaîtra. Contrôler NTSD à partir du débogueur noyau est donc particulièrement utile car cela donne un débogueur extrêmement léger qui ne charge presque pas l’ordinateur contenant l’application cible. Cette combinaison peut être utilisée pour déboguer des processus système, des arrêts et les étapes ultérieures du démarrage. Veuillez consulter la section Contrôler le débogueur en mode utilisateur depuis le débogueur noyau pour plus de détails.

Voir aussi

Débogage de Windows

Fonctionnalités de WinDbg