La meilleure façon que je peux penser à faire est de charger un programme qui utilise le fichier objet et démonter la fonction dans le débogueur. Le code du programme que vous avez affiché fonctionnerait bien pour cela. Déconnectez simplement l'appel à func
, puis affichez l'assembleur lorsque vous faites un seul pas dans la fonction.
Dans un programme plus complexe, vous pouvez généralement afficher le code assembleur pour une fonction donnée par son nom. Consultez la documentation de votre débogueur pour savoir comment procéder. Sous Windows (Visual Studio), vous pouvez ouvrir la fenêtre Disassembly
et entrer le nom de la fonction pour afficher le code de l'assembleur.
Si vous avez la source, la plupart des compilateurs vous permettent de sortir l'assembleur, parfois mélangé avec le code source. Pour Visual C++, il s'agit de /Fa.
Y a-t-il une raison particulière de le faire? –
Je suis avec @Etienne à ce sujet. Plutôt que de nous demander "Comment puis-je?" demandez-nous "Comment puis-je atteindre ?", où X se réfère à l'objectif réel que vous cherchez actuellement (et de façon erronée) à atteindre en faisant . –
sbi
Les temporaires tels que les temporaires "int" dans '1 + Foo() + 2 + Bar() + 3' vont être très difficiles à détecter. Le compilateur utilisera simplement un registre pour l'accumulation, mais C++ formellement avait trois temporaires pendant l'évaluation. – MSalters