首页 > 后端开发 > C++ > 如何使用 GCC 访问 C/C 源生成的汇编代码?

如何使用 GCC 访问 C/C 源生成的汇编代码?

Patricia Arquette
发布: 2024-12-23 02:27:24
原创
734 人浏览过

How Can I Access the Assembly Code Generated from C/C   Source Using GCC?

从 GCC 中的 C/C 源访问汇编器输出

要分析编译过程,提取发出的汇编代码通常很有用。使用 GCC 可以通过两种方式实现这一点:

使用 -S 选项:

通过在 gcc 命令中添加 -S 选项,将调用预处理器,并且将发生初始编译。然而,该过程将在组装阶段之前停止。此部分编译输出通常名为 file_name.s,包含与原始 C/C 源代码相对应的汇编代码。

使用 objdump:

如果仅对象文件可用时,可以使用 objdump 实用程序提取汇编代码。通过添加 --disassemble (-d) 选项,objdump 将生成目标文件的反汇编结果。如果使用调试信息(使用 -g)执行编译,则源代码行将与反汇编交错,以提高可读性。

示例:

gcc -S source_file.c
objdump -S --disassemble object_file.o > assembly_output.txt
登录后复制

gcc 的 -S 选项将生成一个名为 source_file.s 的汇编文件。 objdump 命令将创建一个名为 assembly_output.txt 的文本文件,其中包含目标文件的反汇编,并包含源代码行(如果可用)。

用于自定义输出的其他 objdump 选项包括:

  • -rwC:显示符号重定位、禁用换行以及对 C 名称进行解调。
  • -Mintel:使用x86 汇编的 Intel 语法,而不是 AT&T。

以上是如何使用 GCC 访问 C/C 源生成的汇编代码?的详细内容。更多信息请关注PHP中文网其他相关文章!

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