【问题标题】:Map assemly to C source code [duplicate]将程序集映射到 C 源代码 [重复]
【发布时间】:2014-11-05 01:07:35
【问题描述】:

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

【问题讨论】:

  • 这可能就是你要找的东西:stackoverflow.com/questions/1289881/…
  • -S 选项与 GCC、TCC、BCC 一起使用
  • 最快的方法是使用godbolt,它甚至使用颜色将C代码链接到汇编。您将不得不使用-x c,但这并不太难。以前我会把你链接到Online C++ compiler and evaluator,但遗憾的是最近被删除了。
  • 您可以选择objdump 路线,也可以告诉gcc 生成一个列表文件(如here 所述)。

标签: c assembly compiler-construction


【解决方案1】:

使用-S 选项和gcc 生成程序集文件输出。

gcc -S 文件.c

编辑:

如果您想同时查看assembly 输出和C 代码,请使用gdb -tui a.out

(gdb) 布局拆分

layout split 命令将窗口分成两部分——一部分显示源代码,另一部分显示相应的程序集。

【讨论】:

  • OP 想要在输出中同时包含 C 和程序集。 -S 不这样做 AFAIK。
  • @Michael Okay 将其添加到我的编辑中。
猜你喜欢
  • 2017-05-26
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 2017-12-14
  • 1970-01-01
  • 1970-01-01
  • 2011-11-12
相关资源
最近更新 更多