Maison > développement back-end > C++ > Comment puis-je obtenir la sortie assembleur de mon code C/C en utilisant GCC et objdump ?

Comment puis-je obtenir la sortie assembleur de mon code C/C en utilisant GCC et objdump ?

Mary-Kate Olsen
Libérer: 2024-12-24 05:21:20
original
421 Les gens l'ont consulté

How can I get assembler output from my C/C   code using GCC and objdump?

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

Pour analyser le processus de compilation, l'extraction du code d'assemblage émis est essentielle. Une méthode efficace consiste à utiliser l'option -S dans GCC (ou G ).

Utilisation de l'option -S

En spécifiant -S, le préprocesseur traitera le fichier source, effectuez la compilation initiale, mais arrêtez-vous avant d'appeler l'assembleur. Cela vous permet d'examiner le code avant qu'il ne passe par l'assemblage. Pour une meilleure lisibilité, utilisez -fverbose-asm.

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

Le fichier de sortie sera nommé helloworld.s par défaut. Pour changer cela, utilisez l'option -o.

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

Analyse des fichiers objets existants

Si vous n'avez qu'un fichier objet, vous pouvez utiliser objdump avec le - Option -disassemble (-d).

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

Pour des informations améliorées, envisagez d'utiliser -rwC (pour les déplacements de symboles et démantelage de noms), -Mintel (pour la syntaxe Intel avec x86) et -r (pour inclure des références à partir d'objets non liés).

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

Ces méthodes fournissent des informations précieuses sur le processus de compilation, vous permettant d'analyser le code assembleur de vos programmes C/C.

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