将assemly映射到C源代码
在Linux系统上,是否使用C编译器(如GCC或clang)生成将C代码映射到程序集输出的程序集输出(以便可以看到C代码中代表的程序集块)?我正在尝试理解启用O3时C代码的输出是什么,但由于缺乏汇编知识,我遇到了困难。使用将assemly映射到C源代码,c,assembly,compiler-construction,C,Assembly,Compiler Construction,在Linux系统上,是否使用C编译器(如GCC或clang)生成将C代码映射到程序集输出的程序集输出(以便可以看到C代码中代表的程序集块)?我正在尝试理解启用O3时C代码的输出是什么,但由于缺乏汇编知识,我遇到了困难。使用-S选项和gcc生成汇编文件输出 gcc-S文件.c 编辑: 如果要同时查看程序集输出和C代码,请使用gdb-tui a.out: (gdb)布局拆分 layout split命令将窗口分为两部分-其中一部分显示源代码,另一部分显示相应的程序集。这可能就是您要寻找的:将-S选项
-S
选项和gcc
生成汇编文件输出
gcc-S文件.c
编辑:
如果要同时查看程序集
输出和C
代码,请使用gdb-tui a.out
:
(gdb)布局拆分
layout split命令将窗口分为两部分-其中一部分显示源代码,另一部分显示相应的程序集。这可能就是您要寻找的:将
-S
选项与GCC、TCC、BCC结合使用最快的方法是使用它,甚至使用颜色将C代码链接到程序集。不过,您必须使用-xc
,但这并不难。以前我会将您链接到,但遗憾的是最近被删除了。您可以选择objdump
路线,也可以告诉gcc生成一个清单文件(如上所述)。OP希望输出中同时包含C和汇编<代码>-S不会这样做。@Michael Okay将其添加到我的编辑中。