Utilisation des commandes du débogueur

Décrit l’utilisation des commandes du débogueur. WinDbg est un débogueur qui peut être utilisé pour analyser les vidages sur incident, déboguer le code en mode utilisateur actif et en mode noyau, et examiner les registres de processeur et la mémoire. Pour plus d’informations, consultez Vue d’ensemble de WinDbg.

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

Pour commencer à utiliser WinDbg, consultez Prise en main avec le débogage Windows.

Fenêtre de 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 la 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 Fenêtre de commande du débogueur.

Vous pouvez utiliser les flèches haut et bas pour faire défiler 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, « fenêtre de commande du débogueur » fait référence à la fenêtre entière. Vous entrez les commandes à l’invite en bas de la fenêtre. Si les commandes ont une sortie, la fenêtre affiche la sortie, puis réaffiche l’invite.

Invite de la 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 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 le numéro de processus actuel et 005 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 numéro du processeur actuel s’affiche 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 commandes. 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 ne s’affiche. 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 d’autres ne sont disponibles que sur un ou deux des débogueurs.

Certaines commandes sont disponibles uniquement dans le débogage dynamique, 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 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.

Commandes d’édition, de répétition et d’annulation

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

  • Utilisez les touches Haut et Bas pour rechercher les commandes précédentes.

  • Modifiez la commande actuelle avec les touches RETOUR ARRIÈRE, SUPPRIMER, INSERTION et FLÈCHE GAUCHE et FLÈCHE DROITE.

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

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 la touche TAB à plusieurs reprises pour parcourir les options de saisie semi-automatique du texte, maintenez la touche Maj enfoncée et 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 des options de saisie semi-automatique. Par exemple, si vous tapez fo* !ba , puis appuyez sur TAB, le débogueur se développe jusqu’à l’ensemble de tous les symboles qui commencent par « ba », dans tous les modules dont les noms de module commencent par « fo ». Autre exemple, vous pouvez terminer toutes les commandes d’extension qui contiennent « prcb » 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, les symboles de type et les 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 fourni, la complétion de symboles complète le code et les symboles de type de toutes les correspondances.

Vous pouvez sélectionner et maintenir (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 de ligne maximale est de 512 caractères.

Dans CDB et KD, appuyez sur la touche ENTRÉE 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êtez ou appuyez sur Ctrl+Arrêt.

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

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

Syntaxe d'expression

De nombreuses commandes et commandes d’extension acceptent des 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 à retaper des expressions complexes. Il existe deux types d’alias. Pour plus d’informations sur les alias, consultez Utilisation d’alias.

commandes Self-Repeating

Vous pouvez utiliser les commandes suivantes pour répéter une action ou exécuter d’autres commandes de manière conditionnelle :

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, sélectionnez options dans le menu Affichage, puis désactivez la case à case activée 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, d’autres dans le menu contextuel de la fenêtre Commande du débogueur et d’autres en sélectionnant l’icône de menu appropriée.

  • La commande Word wrap dans le menu contextuel active et désactive le mot wrap status. Cette commande affecte l’ensemble de la fenêtre, pas seulement les commandes que vous utilisez après la modification de cet état. Étant donné que de nombreuses commandes et extensions produisent des affichages mis en forme, nous ne recommandons généralement pas l’habillage des mots.

  • La modification | La commande de menu Ajouter à la sortie de commande ajoute un commentaire dans la fenêtre Commande du débogueur. La commande Ajouter à la sortie de la 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 du registre automatique dans une couleur, les messages d’erreur dans 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.

Remote Debugging

Lorsque vous effectuez un débogage à distance 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 de ligne de commande-clines ou la variable d’environnement _NT_DEBUG_HISTORY_SIZE.