Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将assemly映射到C源代码_C_Assembly_Compiler Construction - Fatal编程技术网

将assemly映射到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选项

在Linux系统上,是否使用C编译器(如GCC或clang)生成将C代码映射到程序集输出的程序集输出(以便可以看到C代码中代表的程序集块)?我正在尝试理解启用O3时C代码的输出是什么,但由于缺乏汇编知识,我遇到了困难。

使用
-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将其添加到我的编辑中。