您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何从gcc中的C / C ++源获取汇编程序输出?

如何从gcc中的C / C ++源获取汇编程序输出?

使用该-S选项来gcc(或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获得的详细程度的指示。

这将生成带有C代码+行号交织在一起的汇编代码,以便更轻松地查看哪些行生成什么代码

# create assembler code:
g++ -S -fverbose-asm -g -O2 test.cc -o test.s
# create asm interlaced with source lines:
as -alhnd test.s > test.lst
其他 2022/1/1 18:26:29 有499人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶