gpt4 book ai didi

linux - 如何将 Linux 内核取消优化并使用 -O0 进行编译?

转载 作者:IT王子 更新时间:2023-10-29 00:00:31 25 4
gpt4 key购买 nike

我想阅读并理解 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com