Maison > développement back-end > C++ > Comment puis-je accéder au code assembleur généré à partir de la source C/C à l'aide de GCC ?

Comment puis-je accéder au code assembleur généré à partir de la source C/C à l'aide de GCC ?

Patricia Arquette
Libérer: 2024-12-23 02:27:24
original
734 Les gens l'ont consulté

How Can I Access the Assembly Code Generated from C/C   Source Using GCC?

Accès à la sortie de l'assembleur à partir de la source C/C dans GCC

Pour analyser le processus de compilation, il est souvent utile d'extraire le code assembleur émis . Ceci peut être réalisé de deux manières en utilisant GCC :

En utilisant l'option -S :

En ajoutant l'option -S à la commande gcc, le préprocesseur sera invoqué , et la compilation initiale aura lieu. Cependant, le processus s'arrêtera avant la phase d'assemblage. Cette sortie de compilation partielle, généralement nommée file_name.s, contient le code assembleur qui correspond à la source C/C d'origine.

Utilisation d'objdump :

Si seulement l'objet est disponible, l'utilitaire objdump peut être utilisé pour extraire le code assembleur. En ajoutant l'option --disassemble (-d), objdump générera un désassemblage du fichier objet. Si la compilation a été effectuée avec les informations de débogage (en utilisant -g), les lignes sources seront entrelacées avec le désassemblage pour une meilleure lisibilité.

Exemple :

gcc -S source_file.c
objdump -S --disassemble object_file.o > assembly_output.txt
Copier après la connexion

L'option -S avec gcc générera un fichier assembly nommé source_file.s. La commande objdump créera un fichier texte nommé assembly_output.txt contenant le désassemblage du fichier objet, avec les lignes source incluses si disponibles.

Les options objdump supplémentaires pour personnaliser la sortie incluent :

  • -rwC : afficher les déplacements de symboles, désactiver le retour à la ligne et démanteler les noms C.
  • -Mintel : Utilisez la syntaxe Intel pour l'assemblage x86 au lieu d'AT&T.

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!

source:php.cn
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