首页 >后端开发 >C++ >如何使用 GCC 和 objdump 从 C/C 代码获取汇编程序输出?

如何使用 GCC 和 objdump 从 C/C 代码获取汇编程序输出?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-24 05:21:20328浏览

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

从 GCC 中的 C/C 源获取汇编器输出

要分析编译过程,提取发出的汇编代码至关重要。一种有效的方法是在 GCC(或 G )中使用 -S 选项。

使用 -S 选项

通过指定 -S,预处理器将处理源文件,执行初始编译,但在调用汇编器之前停止。这允许您在进行汇编之前检查代码。为了提高可读性,请使用 -fverbose-asm。

gcc -S helloworld.c

默认情况下,输出文件将命名为 helloworld.s。要更改此设置,请使用 -o 选项。

gcc -S -o my_asm_output.s helloworld.c

分析现有对象文件

如果您只有一个对象文件,则可以使用 objdump 和 - -disassemble (-d) 选项。

objdump -S --disassemble helloworld > helloworld.dump

有关增强信息,请考虑使用 -rwC (对于符号重定位和名称重组)、-Mintel(适用于 x86 的 Intel 语法)和 -r(包括来自未链接对象的引用)。

objdump -drwC -Mintel -S foo.o | less

这些方法提供了有关编译过程的宝贵见解,使您能够分析您的 C/C 程序的汇编代码。

以上是如何使用 GCC 和 objdump 从 C/C 代码获取汇编程序输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn