如何在 GCC 中从 C/C 源输出汇编代码
在分析编译代码时,访问生成的汇编代码至关重要。在 GCC 中,可以使用“-S”选项来实现。
使用 -S 选项
默认情况下,“-S”在源文件,执行初始编译,但在调用汇编器之前停止。与“-fverbose-asm”结合使用,此选项将 C 代码与汇编代码作为注释关联起来,在优化级别 -O0 下特别有用。
gcc -S helloworld.c
自定义输出文件
输出文件通常以源文件命名,扩展名为 .s。要自定义输出文件的位置,请使用“-o”选项:
gcc -S -o my_asm_output.s helloworld.c
或者,您可以使用“-o -”输出到控制台:
gcc -S -o - helloworld.c | less
访问可执行对象的程序集
如果您没有原始源代码但有目标文件,使用 objdump 和“--disassemble”选项 (-d):
objdump -S --disassemble helloworld > helloworld.dump
在原始编译 (-g) 中启用调试,以通过源代码行引用增强反汇编输出。
其他 objdump 选项
考虑使用这些 objdump 选项以获取更多详细信息分析:
For例如,以下命令提供丰富的反汇编输出:
objdump -drwC -Mintel -S foo.o | less
记住, “-r”对于在带有占位符的 .o 文件中显示符号引用至关重要。
以上是如何使用 GCC 和 objdump 从 C/C 生成汇编代码?的详细内容。更多信息请关注PHP中文网其他相关文章!