Maison > développement back-end > C++ > Comment puis-je obtenir la sortie du code assembleur du code source C/C compilé par GCC ?

Comment puis-je obtenir la sortie du code assembleur du code source C/C compilé par GCC ?

Susan Sarandon
Libérer: 2024-12-27 06:51:09
original
606 Les gens l'ont consulté

How Can I Get Assembly Code Output from GCC Compiling C/C   Source Code?

Obtention de la sortie de l'assembleur à partir de la source C/C dans GCC

Pour analyser la façon dont le code est compilé, il est avantageux de récupérer le code assembleur émis. Dans GCC, cela peut être réalisé en utilisant l'option -S.

gcc -S helloworld.c
Copier après la connexion

Cela invoquera le préprocesseur et la compilation initiale, mais s'arrêtera avant d'exécuter l'assembleur.

Pour une sortie d'assembly plus complète, pensez à utiliser -fverbose-asm avec -O0. Cependant, notez que cela fonctionne mieux aux niveaux d'optimisation par défaut.

Le fichier de sortie par défaut est helloworld.s, mais peut être personnalisé à l'aide de -o. De plus, -o - peut être utilisé pour diriger la sortie directement vers la sortie standard.

gcc -S -o my_asm_output.s helloworld.c
Copier après la connexion

Si seul le fichier objet est disponible, objdump avec l'option --disassemble peut être utilisé :

objdump -S --disassemble helloworld > helloworld.dump
Copier après la connexion

Cela entrelacera les lignes source avec la sortie de démontage. L'activation du débogage (-g) et le fait d'éviter la suppression peuvent améliorer les détails du désassemblage.

Pour encore plus de personnalisation, envisagez des options telles que -rwC (déplacements de symboles), -Mintel (syntaxe Intel) et -r (important pour fichiers objets avec des références de symboles d'espace réservé).

Par exemple, la commande suivante fournit un vidage détaillé en utilisant la syntaxe Intel :

objdump -drwC -Mintel -S foo.o | less
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal