作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想阅读并理解 Linux 内核的内存管理(尤其是碎片整理\压缩\迁移)。
因此,我关闭了 .config
中的大小优化(当然使用 make menuconfig)并编译...这让我仍然拥有一个优化的内核。
注意: 当我说优化内核时,我的意思是当我使用 gdb
并告诉它 next
它会跳来跳去。我不想要那样,我希望能够像使用简单的 hello world 一样逐行执行代码。
接下来,我编辑 Makefile
并将 -O2
与 -O0
交换,这会导致出现问题。
我找到了 this ,但我不知道我需要什么文件,因为我不知道兔子洞到底有多远。
是否有更通用的选项可供我使用?我了解内存压缩的概念;但是,我想看看一切发生在哪里以及它究竟是如何发生的。
最佳答案
您不能取消优化内核。您也许可以取消优化某些功能,例如:
void __attribute__((optimize("O0"))) foo(unsigned char data) {
// unmodifiable compiler code
}
但内核作为一个整体需要 -O2,因为代码本身是在假设某些功能将以某种方式优化的情况下编写的。
抱歉,但您确实需要知道您想要进入的兔子洞的大小。
关于linux - 如何将 Linux 内核取消优化并使用 -O0 进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29151235/
我是一名优秀的程序员,十分优秀!