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
779 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!

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