Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cela décrit l’utilisation des commandes du débogueur. WinDbg est un débogueur qui peut être utilisé pour analyser les dump de plantage, déboguer le code en mode utilisateur et en mode noyau en direct, et examiner les registres du processeur ainsi que 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 bien démarrer avec WinDbg, consultez Prise en main du 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 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) (
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 commande de la fenêtre 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 à plus d'un ordinateur, le numéro de système est inclus avant le numéro du processus et du 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 Flèche bas pour rechercher les commandes précédentes.
Modifiez la commande actuelle avec les touches BACKSPACE, DELETE, INSERT, Flèche gauche et Flèche droite.
Appuyez sur la touche Échap pour effacer la ligne en cours.
Vous pouvez appuyer sur la touche TAB pour compléter automatiquement votre texte. Dans l’un des débogueurs, appuyez sur la touche TAB après avoir entré au moins un caractère pour compléter automatiquement une commande. Appuyez à plusieurs reprises sur la touche Tab pour parcourir les options de saisie semi-automatique de texte, et 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 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 module ou un modèle de module est donné, la saisie semi-automatique complète le code et les symboles de type à partir 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 l’onglet Effacer l’historique du ruban Commande ou en sélectionnant Effacer l’historique des commandes dans le menu contextuel (clic droit) de la fenêtre Commande.
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.
Aliases
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 à répétition automatique
Vous pouvez utiliser les commandes suivantes pour répéter une action ou exécuter conditionnellement d’autres commandes :
Commande conditionnelle j (Exécuter If-Else)
Commande conditionnelle z (Execute While)
Qualificateur de commande ~e (Thread-Specific Command)
La commande d'extension !list
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, désactivez le bouton Auto Scroll dans l’onglet Command, ou cliquez avec le bouton droit dans la fenêtre Commande et décochez Automatiquement défiler.
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 à partir de l’onglet Ruban de commandes et d’autres dans le menu contextuel (cliquez avec le bouton droit) dans la fenêtre Commande.
La commande Word wrap dans le menu contextuel active et désactive l’état du retour à la ligne. 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.
Le bouton Sélection de la mise en surbrillance sous l’onglet Ruban Commande (ou Sélection surbrillance dans le menu contextuel) met en surbrillance ou désactive la sélection de texte actuelle (Ctrl+Alt+H).
Le bouton Effacer la sélection sous l’onglet Ruban Commande (ou Effacer le texte sélectionné dans le menu contextuel) efface le texte actuellement sélectionné dans l’historique des commandes.
Vous pouvez naviguer entre les sections de commande à l’aide de Go to Previous (Ctrl+[) et de Go to Next (Ctrl+]) sous l’onglet Ruban de commandes, ou Sélectionner la commande précédente et Sélectionner la commande suivante dans le menu contextuel.
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 -clinesde ligne de commande ou la variable d’environnement _NT_DEBUG_HISTORY_SIZE.