Maison >développement back-end >C++ >Comment puis-je obtenir la sortie assembleur de mon code C/C en utilisant GCC et 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!