Volet Désassemblage
Remonter à Fenêtres CPU - Index
Voir > Fenêtres de débogage > Fenêtres CPU > Désassemblage
Affiche l'adresse, la représentation hexadécimale des instructions en code machine (opcodes) et les instructions d'assemblage de chaque ligne de code source. L'adresse est le décalage dans la méthode désassemblée. Le volet Désassemblage est situé dans le coin supérieur gauche de la fenêtre quand la vue Tout CPU est affichée (Voir > Fenêtres de débogage > Fenêtres CPU > Tout CPU).
Si les informations de débogage sont disponibles, le débogueur affiche le code source qui correspond aux instructions d'assemblage.
Une flèche droite () à gauche d'une adresse indique le point d'exécution en cours.
Quand l'instruction en cours est une instruction de transfert (call ou jmp, par exemple), une flèche vers le haut ou vers le bas figurant après l'instruction indique la direction cible de l'instruction de transfert. Par exemple, si la cible est située avant l'instruction en cours, une flèche vers le haut apparaît. Si la cible est située après l'instruction en cours, une flèche vers le bas apparaît.
Concernant les instructions de transfert conditionnelles (telles que jz ou jle), une flèche ne s'affiche que si la condition est vraie. Concernant les instructions de définition conditionnelles (telles que seta ou setz), une flèche gauche s'affiche si la condition est vraie.
Défilement du volet Désassemblage
Utilisez les méthodes suivantes pour faire défiler le volet Désassemblage :
- Appuyez sur CTRL+FLECHE GAUCHE ou CTRL+FLECHE DROITE pour décaler le point de départ de l'affichage d'un octet vers le haut ou vers le bas. Le changement du point de départ de l'affichage modifie l'emplacement auquel le débogueur commence à désassembler le code machine.
- Cliquez au-dessus ou au-dessous du curseur de la barre de défilement verticale pour faire défiler d'un écran vers le haut ou vers le bas. En raison du volume important d'informations pouvant être affichées dans le volet Désassemblage, le glissement du curseur de la barre de défilement est désactivé.
- Utilisez les commandes de menu contextuel Aller à l'adresse, Aller à l'EIP en cours, Suivre et Précédent, décrites dans le tableau suivant.
Menu contextuel
Elément | Description |
---|---|
Activé |
Disponible uniquement lorsque vous cliquez avec le bouton droit sur un point d'arrêt. Bascule le point d'arrêt de l'état activé à l'état désactivé (et vice-versa). |
Propriétés du point d'arrêt |
Disponible uniquement lorsque vous cliquez avec le bouton droit sur un point d'arrêt. Affiche la boîte de dialogue Propriétés du point d'arrêt adresse. |
Exécuter jusque là |
Exécute votre programme à vitesse normale jusqu'à l'instruction que vous avez sélectionnée dans la fenêtre CPU. Après l'interruption de votre programme, vous pouvez utiliser cette commande pour reprendre le débogage à une instruction particulière. |
Basculer le point d'arrêt |
Définit ou supprime un point d'arrêt à l'adresse actuellement sélectionnée. |
Aller à l'adresse |
Affiche la boîte de dialogue Adresse de positionnement, dans laquelle vous pouvez entrer un symbole ou, pour le code managé, une adresse dans le format de compilateur JIT (Just-In-Time). |
Aller à l'EIP en cours |
Positionne la fenêtre CPU à l'emplacement indiqué par le compteur de programme en cours (l'emplacement indiqué par le registre EIP). Cet emplacement indique la prochaine instruction qui sera exécutée par votre programme. |
Suivre |
Positionne le volet à l'adresse de destination de l'instruction sélectionnée. Utilisez la commande Suivre avec les instructions qui entraînent un transfert de contrôle (comme CALL, JMP et INT) et avec les instructions de branchement conditionnel (comme JZ, JNE, LOOP, etc.). Pour les branchements conditionnels, l'adresse est montrée comme si la condition était true. Utilisez la commande Précédent pour revenir à l'origine du saut. |
Appelant |
Positionne le volet Désassemblage sur l'instruction qui suit celle qui a appelé l'interruption ou le sous-programme en cours. Si la routine d'interruption en cours a placé des éléments de données dans la pile, le débogueur risque de pas pouvoir déterminer de quel point du programme la routine a été appelée. |
Précédent |
Restitue à la fenêtre CPU l'affichage qu'elle avait avant la dernière commande Suivre. |
Chercher |
Affiche la boîte de dialogue d'entrée des octets à rechercher, qui vous permet de rechercher dans la fenêtre CPU une expression ou liste d'octets (cliquez sur Aide sur la boîte de dialogue d'entrée des octets à rechercher pour plus de détails). |
Voir le source |
Active l'éditeur de code et positionne le point d'insertion sur la ligne de code source qui correspond le mieux à l'instruction désassemblée sélectionnée dans la fenêtre CPU. S'il n'y a pas de code source correspondant, cette commande est sans effet. |
Source mixte |
Bascule l'affichage entre les instructions d'assemblage uniquement et celles-ci et leur code source correspondant (si les informations de débogage sont disponibles). |
Code IL mixte |
Quand vous déboguez du code managé, bascule l'affichage pour inclure les instructions MSIL. |
Afficher les adresses |
Inclut les adresses des instructions. |
Afficher les codes opératoires |
Inclut les codes opératoires des instructions. Les choix sont Auto, Toujours et Jamais. La valeur par défaut est Auto. Elle affiche les codes opératoires si la fenêtre est assez large pour contenir la colonne des codes opératoires. |
Nouveau EIP |
Change l'emplacement du pointeur d'instruction (la valeur du registre EIP) par la ligne mise en surbrillance dans le volet Désassemblage. Utilisez cette commande lorsque vous voulez sauter certaines instructions machine. Lorsque vous reprenez l'exécution du programme, elle commence à cette adresse. Cette commande n'est pas identique à l'exécution pas à pas des instructions ; le débogueur n'exécute pas les instructions que vous voulez sauter.
|
Copier |
Copie toutes les instructions sélectionnées dans le Presse-papiers. A partir du volet de désassemblage, vous pouvez sélectionner une seule instruction ou utiliser la touche MAJ pour en sélectionner plusieurs. Dans tous les autres volets, vous ne pouvez sélectionner qu'un seul élément à copier. |
Voir FPU |
Affiche la vue FPU, qui affiche les registres en virgule flottante, les registres MMX et les registres SSE. |