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

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

Mary-Kate Olsen
发布: 2024-12-24 05:21:20
原创
323 人浏览过

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中文网其他相关文章!

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