【发布时间】:2017-04-08 10:47:47
【问题描述】:
我已经编写了一个内核模块,我想生成汇编代码,即*.s 文件。
到目前为止,我可以使用 objdump 从目标文件生成 .s 文件,但它没有为我提供正确的汇编代码。谁能帮我解决这个问题。
【问题讨论】:
-
你试过用
-S
标签: gcc assembly makefile linux-kernel kernel
我已经编写了一个内核模块,我想生成汇编代码,即*.s 文件。
到目前为止,我可以使用 objdump 从目标文件生成 .s 文件,但它没有为我提供正确的汇编代码。谁能帮我解决这个问题。
【问题讨论】:
-S
标签: gcc assembly makefile linux-kernel kernel
您必须使用-S 选项来生成汇编代码,我也建议使用-O0 选项禁用任何优化(如果您需要它),如果您想查看优化的汇编代码,只需添加@987654325 @
更多关于 gcc 选项的信息你可以find here
【讨论】:
-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。