Notes
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.
La fenêtre Désassemblement affiche le code d’assembly correspondant aux instructions créées par le compilateur. Si vous déboguez du code managé, ces instructions d’assembly correspondent au code natif créé par le compilateur Juste-à-temps (JIT), et non au langage intermédiaire Microsoft (MSIL) créé par le compilateur Visual Studio.
Remarque
Pour tirer pleinement parti de la fenêtre Désassembler , comprendre ou apprendre les principes de base de la programmation de langage d’assembly. Les documents de référence pour les jeux d’instructions Intel se trouvent dans le 2e volume des manuels d’architecture. Ce matériel s’applique généralement aux ensembles d’instructions AMD.
Cette fonctionnalité est disponible uniquement si le débogage au niveau de l’adresse est activé. Elle n'est pas disponible pour le débogage de script ni le débogage SQL.
Outre les instructions d’assembly, la fenêtre Désassembleur peut afficher les informations facultatives suivantes :
Adresse mémoire où se trouve chaque instruction. Pour les applications natives, il s’agit de l’adresse mémoire réelle. Pour Visual Basic ou C#, il s’agit d’un décalage par rapport au début de la fonction.
Code source à partir duquel le code d’assembly dérive.
Octets du code, à savoir la représentation sous forme d’octets des instructions machine ou MSIL réelles.
Les noms des symboles pour les adresses mémoire.
Numéros de ligne correspondant au code source.
Les instructions de langage assembly se composent de mnémoniques, qui sont des abréviations pour les noms d’instructions et des symboles pour les variables, les registres et les constantes. Chaque instruction de langage automatique est représentée par un mnémonique de langue assembly, éventuellement suivi d’un ou plusieurs symboles.
Le code d’assembly s’appuie fortement sur les registres de processeur ou, pour le code managé, les registres Common Language Runtime. Vous pouvez utiliser la fenêtre Désassembler avec la fenêtre Registres , qui vous permet d’examiner le contenu de l’inscription.
Pour afficher des instructions de code machine sous leur forme numérique brute, plutôt que comme langage d’assembly, utilisez la fenêtre Mémoire ou sélectionnez Octets de code dans le menu contextuel de la fenêtre Désassemblement .
Utiliser la fenêtre Désassemblement
Pour activer la fenêtre Désassembler, sous Outils>Options>Débogage, sélectionnez Activer le débogage au niveau de l’adresse.
Pour ouvrir la fenêtre Désassembler pendant le débogage, sélectionnez Désassembler> ou >Alt + D. +
Remarque
Les boîtes de dialogue et les commandes de menu que vous voyez peuvent différer de celles décrites dans cet article en fonction de vos paramètres actifs ou édition. Pour modifier vos paramètres, choisissez paramètres d’importation et d’exportation dans le menu Outils. Pour plus d’informations, consultez Réinitialiser tous les paramètres.
Pour activer ou désactiver les informations facultatives, cliquez avec le bouton droit dans la fenêtre Désassembler , puis définissez ou désactivez les options souhaitées dans le menu contextuel.
Une flèche jaune dans la marge gauche marque le point d’exécution actuel. Pour le code natif, le point d’exécution correspond au compteur de programme du processeur. Cet emplacement affiche l’instruction suivante qui sera exécutée dans votre programme.
Se déplacer d’une page vers le haut ou vers le bas dans la mémoire
Lorsque vous affichez le contenu de la mémoire dans une fenêtre Mémoire ou la fenêtre Désassembler , vous pouvez utiliser la barre de défilement verticale pour monter ou descendre dans l’espace mémoire.
Pour descendre dans la page (passer à une adresse mémoire supérieure), cliquez sur la barre de défilement verticale sous la zone de défilement.
Pour monter en page (passer à une adresse mémoire inférieure), cliquez sur la barre de défilement verticale au-dessus du pouce.
Vous remarquerez également que la barre de défilement verticale fonctionne de manière non standard. L’espace d’adressage d’un ordinateur moderne est très grand et il serait facile de se perdre en saisissant le pouce de la barre de défilement et en le faisant glisser vers un emplacement aléatoire. Pour cette raison, le curseur est « fixé » et reste toujours au milieu de la barre de défilement. Dans les applications de code natif, vous pouvez naviguer vers le haut ou vers le bas, mais ne pouvez pas faire défiler librement.
Dans les applications managées, le désassemblement est limité à une fonction et vous pouvez faire défiler normalement.
Vous remarquerez que les adresses supérieures apparaissent en bas de la fenêtre. Pour afficher une adresse plus élevée, vous devez descendre, pas vers le haut.
Monter ou descendre d’une instruction
- Cliquez sur la flèche en haut ou en bas de la barre de défilement verticale.