【发布时间】:2015-05-22 23:01:46
【问题描述】:
我想阅读和理解 Linux 内核的内存管理(尤其是碎片整理\压缩\迁移)。
所以,我关闭了 .config 中的大小优化(当然使用 make menuconfig)并编译...这让我仍然有一个优化的内核。
注意:当我说优化内核时,我的意思是当我使用gdb 并告诉它next 它会跳来跳去。我不希望这样,我希望能够像处理简单的 hello world 一样逐行执行代码。
接下来,我编辑 Makefile 并将 -O2 与 -O0 交换,这会导致事情中断。
我找到了this,但我不知道我想要什么文件,因为我不知道兔子洞到底有多远。
我可以使用更通用的选项吗?我了解内存压缩的概念;但是,我想看看一切发生在哪里以及它是如何发生的。
【问题讨论】:
-
你
gdb内核怎么样?您是否开启了kgdb支持? -
@EugeneSh。我正在通过
qemu -s启用DEBUG_KERNEL。我将启用kgdb并报告结果。 -
@EugeneSh。虽然我无法让管道与 qemu 一起工作(gdb 抛出故障),但似乎没有区别。
-
在回答上面的问题时,我突然很好奇,为什么Linux内核必须优化才能正常工作?
-
Greg 说它无法完成,因此你无法完成(实际上):lists.kernelnewbies.org/pipermail/kernelnewbies/2016-August/… :-) 相关:unix.stackexchange.com/questions/153788/…
标签: linux debugging linux-kernel gdb kernel