为了账号安全,请及时绑定邮箱和手机立即绑定

如何从GCC的C/C+源代码中获得汇编语言输出?

如何从GCC的C/C+源代码中获得汇编语言输出?

C++ C
潇潇雨雨 2019-06-20 16:11:35
如何从GCC的C/C+源代码中获得汇编语言输出?一个人是怎么做到的?如果我想分析某样东西是如何编译的,我将如何获得发出的程序集代码?
查看完整描述

3 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

使用-SGCC(或g+)选项。

gcc -S helloworld.c

这将在helloworld.c上运行预处理器(CPP),执行初始编译,然后在汇编程序运行之前停止。

默认情况下,这将输出一个文件。helloworld.s..输出文件仍然可以通过使用-o选择。

gcc -S -o my_asm_output.s helloworld.c

当然,只有在有原始源的情况下,这才有效。如果只有结果对象文件,则另一种方法是使用objdump,通过设置--disassemble选项(或-d的缩写形式)。

objdump -S --disassemble helloworld > helloworld.dump

如果对象文件启用了调试选项(-g(在编译时),该文件还没有被删除。

跑动file helloworld将为您提供一些指示,说明您将通过使用objdump获得的详细信息。


查看完整回答
反对 回复 2019-06-20
  • 3 回答
  • 0 关注
  • 900 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信