Partager via


Utilisation des commandes du débogueur

Cela décrit l’utilisation des commandes du débogueur. WinDbg est un débogueur qui peut être utilisé pour analyser les vidages de mémoire, déboguer le code en mode utilisateur et en mode noyau en direct, ainsi qu’examiner les registres du CPU et la mémoire. Pour plus d’informations, veuillez consulter cet Aperçu de WinDbg.

Pour installer le débogueur, consultez Installer le débogueur Windows.

Pour bien démarrer avec WinDbg, veuillez consulter la section Bien démarrer le débogage de Windows.

Fenêtre Commande du débogueur WinDbg

Pour WinDbg, « Fenêtre commande du débogueur » fait référence à la fenêtre intitulée « Commande » dans la barre de titre. Cette fenêtre contient deux volets :

  • Dans le petit volet inférieur, vous entrez des commandes.

  • Dans le grand volet supérieur, vous affichez la sortie de commande.

Cette fenêtre est toujours ouverte au début d’une session de débogage. Vous pouvez rouvrir ou basculer vers cette fenêtre en sélectionnant Commande dans le menu Affichage , en appuyant sur Alt+1 ou en sélectionnant le bouton Commande (Alt+1) (Capture d’écran du bouton Debugger Command Window.

Vous pouvez utiliser les touches flèche haut et bas pour parcourir l’historique des commandes. Lorsqu’une commande précédente s’affiche, vous pouvez la modifier, puis appuyer sur Entrée pour exécuter la commande précédente (ou la version modifiée de la commande précédente). Le curseur n’a pas besoin d’être à la fin de la ligne pour que cette procédure fonctionne correctement.

KD ou CDB

Pour KD ou CDB, la « fenêtre commande du débogueur » fait référence à l’ensemble de la fenêtre. Vous entrez des commandes à l’invite en bas de la fenêtre. Si les commandes ont une sortie, la fenêtre affiche la sortie, puis affiche à nouveau l’invite.

Invite de fenêtre de commande du débogueur

Lorsque vous effectuez un débogage en mode utilisateur, l’invite dans la fenêtre Commande du débogueur ressemble à l’exemple suivant.

2:005>

Dans l’exemple précédent, 2 est le numéro de processus actuel et 005 est le numéro de thread actuel.

Si vous attachez le débogueur à plusieurs ordinateurs, le numéro système est inclus avant le processus et le numéro de thread, comme dans l’exemple suivant.

3:2:005>

Dans cet exemple, 3 est le numéro système actuel, 2 est le numéro de processus actuel et 005 est le numéro de thread actuel.

Lorsque vous effectuez un débogage en mode noyau sur un ordinateur cible qui n’a qu’un seul processeur, l’invite ressemble à l’exemple suivant.

kd>

Toutefois, si l’ordinateur cible a plusieurs processeurs, le nombre du processeur actuel apparaît avant l’invite, comme dans l’exemple suivant.

0: kd>

Si le débogueur est occupé à traiter une commande précédemment émise, les nouvelles commandes ne seront temporairement pas traitées, bien qu’elles puissent être ajoutées à la mémoire tampon de commande. En outre, vous pouvez toujours utiliser des touches de contrôle dans KD et CDB, et vous pouvez toujours utiliser des commandes de menu et des touches de raccourci dans WinDbg. Lorsque KD ou CDB est dans cet état occupé, aucune invite n’est affichée. Lorsque WinDbg est dans cet état occupé, l’indicateur suivant s’affiche à la place de l’invite :

*BUSY*

Vous pouvez utiliser la commande .pcmd (Définir la commande d’invite) pour ajouter du texte à cette invite.

Types de commandes

WinDbg, KD et CDB prennent en charge diverses commandes. Certaines commandes sont partagées entre les débogueurs et certaines sont disponibles uniquement sur un ou deux des débogueurs.

Certaines commandes sont disponibles uniquement dans le débogage en direct, et d’autres commandes sont disponibles uniquement lorsque vous déboguez un fichier de vidage.

Certaines commandes sont disponibles uniquement pendant le débogage en mode utilisateur, et d’autres commandes sont disponibles uniquement pendant le débogage en mode noyau.

Certaines commandes sont disponibles uniquement lorsque la cible s’exécute sur certains processeurs. Pour plus d’informations sur toutes les commandes et leurs restrictions, consultez Commandes du débogueur.

Modification, répétition et annulation des commandes

Vous pouvez utiliser des clés d’édition standard lorsque vous entrez une commande :

  • Utilisez les touches Flèche haut et Bas pour rechercher les commandes précédentes.

  • Modifiez la commande actuelle avec les touches BACKSPACE, DELETE, INSERT et Gauche et Flèche droite.

  • Appuyez sur la touche Échap pour effacer la ligne actuelle.

Vous pouvez appuyer sur tabulation pour terminer automatiquement votre entrée de texte. Dans l’un des débogueurs, appuyez sur tabulation après avoir entré au moins un caractère pour terminer automatiquement une commande. Appuyez sur tabulation à plusieurs reprises pour parcourir les options de saisie semi-automatique de texte, puis maintenez la touche Maj enfoncée, puis appuyez sur Tab pour revenir en arrière. Vous pouvez également utiliser des caractères génériques dans le texte et appuyer sur Tab pour développer l’ensemble complet d’options de saisie semi-automatique de texte. Par exemple, si vous tapez fo* !ba , puis appuyez sur TAB, le débogueur se développe sur l’ensemble de tous les symboles qui commencent par « ba », dans tous les modules avec des noms de module commençant par « fo ». Comme autre exemple, vous pouvez terminer toutes les commandes d’extension qui ont « prcb » dans ces commandes en tapant !*prcb , puis en appuyant sur TAB.

Lorsque vous utilisez la touche TAB pour effectuer la saisie semi-automatique du texte, si votre fragment de texte commence par un point (.), le texte est mis en correspondance avec une commande point. Si votre fragment de texte commence par un point d’exclamation ( !), le texte est mis en correspondance avec une commande d’extension. Sinon, le texte est mis en correspondance avec un symbole. Lorsque vous utilisez la touche TAB pour entrer des symboles, appuyez sur la touche TAB pour terminer le code et taper des symboles et des noms de module. Si aucun nom de module n’est apparent, les symboles locaux et les noms de module sont terminés. Si un modèle de module ou de module est donné, la saisie semi-automatique de symboles termine le code et les symboles de type de toutes les correspondances.

Vous pouvez sélectionner et conserver (ou cliquer avec le bouton droit) dans la fenêtre Commande du débogueur pour coller automatiquement le contenu du Presse-papiers dans la commande que vous tapez.

La longueur maximale de la commande est de 4 096 caractères. Toutefois, si vous contrôlez le débogueur en mode utilisateur à partir du débogueur du noyau, la longueur maximale de la ligne est de 512 caractères.

Dans CDB et KD, appuyez sur la touche Entrée par lui-même pour répéter la commande précédente. Dans WinDbg, vous pouvez activer ou désactiver ce comportement. Pour plus d’informations sur ce comportement, consultez ENTRÉE (Répéter la dernière commande).

Si la dernière commande que vous avez émise présente un affichage long et que vous souhaitez la couper, utilisez la touche Ctrl+C dans CDB ou KD. Dans WinDbg, utilisez Debug | Arrêt ou appuyez sur Ctrl+Arrêt.

Dans le débogage en mode noyau, vous pouvez annuler les commandes à partir du clavier de l’ordinateur cible en appuyant sur Ctrl+C.

Vous pouvez utiliser la commande .cls (Clear Screen) pour effacer tout le texte de la fenêtre Commande du débogueur. Cette commande efface l’ensemble de l’historique des commandes. Dans WinDbg, vous pouvez effacer l’historique des commandes à l’aide de la commande Edit | Commande Effacer la sortie de commande ou en sélectionnant Effacer la sortie de commande dans le menu contextuel de la fenêtre Commande du débogueur.

Syntaxe d'expression

De nombreuses commandes et commandes d’extension acceptent les expressions comme arguments. Le débogueur évalue ces expressions avant d’exécuter la commande. Pour plus d’informations sur les expressions, consultez Évaluation des expressions.

Alias

Les alias sont des macros de texte que vous pouvez utiliser pour éviter d’avoir à retyper des expressions complexes. Il existe deux types d’alias. Pour plus d’informations sur les alias, consultez Utilisation des alias.

Commandes auto-répétées

Vous pouvez utiliser les commandes suivantes pour répéter une action ou exécuter conditionnellement d’autres commandes :

Pour plus d’informations sur chaque commande, consultez les rubriques de commande individuelles.

Contrôle du défilement

Vous pouvez utiliser la barre de défilement pour afficher vos commandes précédentes et leur sortie.

Lorsque vous utilisez CDB ou KD, toute entrée de clavier fait défiler automatiquement la fenêtre Commande du débogueur vers le bas.

Dans WinDbg, l’affichage défile automatiquement vers le bas chaque fois qu’une commande produit une sortie ou que vous appuyez sur la touche Entrée. Si vous souhaitez désactiver ce défilement automatique, activez les options dans le menu Affichage, puis désactivez la case à cocher Défilement automatique.

Fonctionnalités de texte WinDbg

Dans WinDbg, vous pouvez utiliser plusieurs fonctionnalités supplémentaires pour modifier l’affichage du texte dans la fenêtre Commande du débogueur. Vous pouvez accéder à certaines de ces fonctionnalités dans la fenêtre WinDbg, dans le menu contextuel de la fenêtre Commande du débogueur, et certains en sélectionnant l’icône de menu appropriée.

  • La commande Word wrap dans le menu contextuel active et désactive l’état du retour automatique au mot. Cette commande affecte toute la fenêtre, et non seulement les commandes que vous utilisez une fois cet état modifié. Étant donné que de nombreuses commandes et extensions produisent des affichages mis en forme, nous ne recommandons généralement pas l’habillage de mots.

  • Modification | La commande Ajouter à la sortie de commande ajoute un commentaire dans la fenêtre Commande du débogueur. La commande Ajouter à la sortie de commande dans le menu contextuel a le même effet.

  • Vous pouvez personnaliser les couleurs utilisées pour le texte et l’arrière-plan de la fenêtre Commande du débogueur. Vous pouvez spécifier différentes couleurs pour différents types de texte. Par exemple, vous pouvez afficher la sortie d’inscription automatique dans une couleur, les messages d’erreur d’une autre couleur et les messages DbgPrint dans une troisième couleur.

  • Vous pouvez utiliser toutes les fonctionnalités communes aux fenêtres d’informations de débogage de WinDbg, telles que la personnalisation des polices et l’utilisation de commandes d’édition spéciales.

Débogage à distance

Lorsque vous effectuez un débogage distant via le débogueur, le client de débogage peut accéder à un nombre limité de commandes. Pour modifier le nombre de commandes auxquelles le client peut accéder, utilisez l’option -clines de ligne de commande ou la variable d’environnement _NT_DEBUG_HISTORY_SIZE.