Débogage du code d’assemblage dans WinDbg (classique)

Dans WinDbg, vous pouvez afficher le code d’assemblage en saisissant des commandes ou à l’aide de la fenêtre Disassembly.

Fenêtre de commande du débogueur

Vous pouvez afficher le code d’assemblage en saisissant l’une des commande u, ub, uu (Désassembler) dans la fenêtre de commande du débogueur.

Fenêtre Disassembly

Pour ouvrir ou basculer vers la fenêtre Disassembly, choisissez Disassembly dans le menu Afficher. (Vous pouvez également appuyer sur Alt+7 ou sélectionner le bouton Disassembly dans la barre d’outils. ALT+SHIFT+7 ferme la fenêtre Disassembly).

La capture d’écran suivante montre un exemple de fenêtre Disassembly.

Capture d’écran de la fenêtre Disassembly dans WinDbg.

Le débogueur prend une section de la mémoire, l’interprète en tant qu’instructions de machine binaire, puis le désassemble pour produire une version du langage assembleur des instructions de la machine. Le code obtenu s’affiche dans la fenêtre Disassembly.

La fenêtre Disassembly vous permet de réaliser ce qui suit :

  • Pour désassembler une autre section de la mémoire, dans la champ Offset, saisissez l’adresse de la mémoire que vous souhaitez désassembler. (Vous pouvez appuyer sur Entrée après avoir saisi l’adresse, mais ce n’est pas nécessaire). La fenêtre Disassembly affiche le code avant d’avoir renseigné l’adresse. Vous pouvez ignorer ce code.

  • Pour afficher d’autres sections de la mémoire, sélectionnez les boutons Précédent ou Suivant, ou appuyez sur les touches PAGE UP ou PAGE DOWN. Ces commandes affichent le code désassemblé des sections précédentes ou suivantes de la mémoire, respectivement. En appuyant sur FLÈCHE DROITE, FLÈCHE GAUCHE, FLÈCHE HAUT ET FLÈCHE BAS vous pouvez naviguer au sein de la fenêtre. Si vous utilisez ces touches pour quitter la page, une nouvelle page s’affiche.

La fenêtre Disassembly comprend une barre d’outils avec deux boutons et un menu contextuel avec des commandes supplémentaires. Pour accéder au menu, sélectionnez et maintenez la barre de titre enfoncée (ou cliquez avec le bouton droit) ou sélectionnez l’icône qui s’affiche en haut à droite de la fenêtre. La liste suivante décrit certaines des commandes du menu.

  • Accéder à l’adresse actuelle ouvre la fenêtre Source avec le fichier source qui correspond à la ligne sélectionnée dans la fenêtre Disassembly et la met en surbrillance.

  • Désassembler avant l’instruction actuelle place la ligne actuelle au milieu de la fenêtre Disassembly. Cette commande est l’option par défaut. Si cette commande est supprimée, la ligne actuelle apparaît en haut de la fenêtre Disassembly, ce qui permet de gagner du temps, car le désassemblage inverse peut prendre beaucoup de temps.

  • Mettre en surbrillance les instructions de la ligne source actuelle met en surbrillance toutes les instructions qui correspondent à la ligne source actuelle. Il est fréquent qu’une seule ligne source corresponde à plusieurs instructions d’assemblage. Si le code a été optimisé, ces instructions d’assemblage peuvent ne pas être consécutives. Cette commande vous permet de trouver toutes les instructions qui ont été assemblées à partir de la ligne source actuelle.

  • Afficher la ligne source pour chaque instruction affiche le numéro de ligne source qui correspond à chaque instruction d’assemblage.

  • Afficher le fichier source pour chaque instruction affiche le nom du fichier source qui correspond à chaque instruction d’assemblage.

Voir aussi

Pour en savoir sur le débogage d’assemblage et les commandes associées, et pour obtenir des explications complètes sur l’affichage d’assemblage, consultez Débogage en mode assemblage.