使用 O0 编译 调试 Linux内核的某些部分

kernel在make menuconfig时会发现,只有 Os O2这两种选项。

如果强行修改Makefile,有些源码会报错。原因网上能搜到一些说法,这里不研究。

 

为了研究源码,我用了这个方法实现O0编译:

在源文件开头,写这句:(可以强制指定 本文件内以下源码全部O0编译):

#pragma GCC optimize ("O0")
 
也可以给单个函数:
__attribute__((optimize("O0")))
 
编译时日志还是会打印 -O2,但是实际上已经O0编译,调试就看出来了。
posted @ 2021-04-24 22:07  园友1683564  阅读(601)  评论(0编辑  收藏  举报