如何去优化Linux内核并使用-O0进行编译?

我想阅读和理解Linux内核的内存pipe理(特别是defrag \ compaction \ migration)。

所以,我closures.config优化大小(当然使用make menuconfig)并编译…这留给我一个优化的内核。

注意:当我说优化内核,我的意思是,当我使用gdb并告诉它next ,它会跳。 我不希望这样,我希望能够像一个简单的hello世界一样,一行一行地遵循代码。

接下来,我编辑Makefile并用-O0交换-O2 ,导致事情中断。

我发现了这个 ,但是我不知道我想要什么文件,因为我不知道兔子洞有多远。

有更通用的select,我可以使用? 我理解记忆压缩的概念; 不过,我想看看所有事情发生的地方以及发生的情况。

你不能去优化内核。 您可能可以解除某些功能的优化,如下所示:

 void __attribute__((optimize("O0"))) foo(unsigned char data) { // unmodifiable compiler code } 

但是整个内核需要-O2,因为代码本身是以某种方式对某些函数进行优化的假设书写的。

对不起,你真的需要知道你想要的兔子洞的大小。