39 votes

Comment voir le code assembleur généré par un compilateur gcc (toute variante) pour un programme C / C ++?

J'essaie d'optimiser beaucoup de multiplications et d'arithmétique de pointeur et j'aimerais voir ce que le compilateur fait en-dessous lorsque je mets des indicateurs d'optimisation.

--Modifier--

Comment le limiter à une fonction spécifique ou à un bloc de code?

--Edit_2--

Comment laisser gcc générer un code assembleur moins détaillé?

40voto

Pavel Shved Points 34706

Ajoutez le commutateur -S à votre ligne de commande.

Edit: N'oubliez pas qu'il placera l'assemblage dans les fichiers que vous avez spécifiés sous le commutateur -o.

9voto

ChrisW Points 37322

Comment le limiter à une fonction spécifique ou à un bloc de code?

Placez cette fonction dans un fichier source séparé (et utilisez un paramètre de ligne de commande différent pour ce fichier source).

5voto

Chris Points 463

Vous pouvez également exécuter ce programme dans un débogueur tel que gdb et utiliser une vue de désassemblage. Dans gdb vous pouvez utiliser la commande disass/m pour afficher l'assemblage mélangé avec le code C de l'emplacement actuel.

3voto

sean riley Points 1520

Vous pouvez arrêter votre programme à un point d'arrêt dans le débogueur Visual Studio et faire "show assembly" et même parcourir les instructions une par une.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X