首页 > 后端开发 > C++ > GCC编译C/C源代码如何获得汇编代码输出?

GCC编译C/C源代码如何获得汇编代码输出?

Susan Sarandon
发布: 2024-12-27 06:51:09
原创
527 人浏览过

How Can I Get Assembly Code Output from GCC Compiling C/C   Source Code?

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

要分析代码是如何编译的,检索发出的汇编代码是有益的。在 GCC 中,可以使用 -S 选项来实现。

gcc -S helloworld.c
登录后复制

这将调用预处理器和初始编译,但在运行汇编器之前停止。

为了获得更全面的汇编输出,考虑将 -fverbose-asm 与 -O0 一起使用。但是,请注意,这在默认优化级别下效果最好。

默认输出文件是 helloworld.s,但可以使用 -o 进行自定义。此外,-o - 可用于将输出直接定向到标准输出。

gcc -S -o my_asm_output.s helloworld.c
登录后复制

如果只有目标文件可用,则可以使用带有 --disassemble 选项的 objdump:

objdump -S --disassemble helloworld > helloworld.dump
登录后复制

这会将源代码行与反汇编输出交错。启用调试 (-g) 并避免剥离可以增强反汇编细节。

要进行更多自定义,请考虑诸如 -rwC(符号重定位)、-Mintel(Intel 语法)和 -r(对于带有占位符符号引用的目标文件)。

例如,以下命令使用 Intel 语法提供详细的转储:

objdump -drwC -Mintel -S foo.o | less
登录后复制

以上是GCC编译C/C源代码如何获得汇编代码输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板