【问题标题】:How to generate assembly code (*.s) file from kernel module (*.c )?如何从内核模块(*.c)生成汇编代码(*.s)文件?
【发布时间】:2017-04-08 10:47:47
【问题描述】:

我已经编写了一个内核模块,我想生成汇编代码,即*.s 文件。

到目前为止,我可以使用 objdump 从目标文件生成 .s 文件,但它没有为我提供正确的汇编代码。谁能帮我解决这个问题。

【问题讨论】:

  • 你试过用-S

标签: gcc assembly makefile linux-kernel kernel


【解决方案1】:

您必须使用-S 选项来生成汇编代码,我也建议使用-O0 选项禁用任何优化(如果您需要它),如果您想查看优化的汇编代码,只需添加@987654325 @

更多关于 gcc 选项的信息你可以find here

【讨论】:

  • 取决于你为什么要查看 asm。如果您想查看编译器是否做得很好,您应该使用-O3(实际上,使用与构建.o 完全相同的选项,但使用-S 而不是-c)。查看未优化的 asm 输出很少有用。另见how to remove noise from gcc output。我喜欢gcc -O3 -masm=intel -fverbose-asm -S -o- | less。尽管对于内核代码,您可能需要避免使用-masm=intel,因为假设 AT&T 是 inline-asm。
猜你喜欢
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多