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
Mary-Kate Olsenoriginal
2024-12-24 05:21:20361parcourir

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

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

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

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

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:
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