如何对Linux内核进行去优化以避免优化值

时间:2017-04-11 03:07:57

标签: gcc linux-kernel gdb

我正在调试Linux内核。

我使用-O1优化级别编译内核。 (注意,Linux内核不能用-O0编译) 当使用gdb进行调试时,我发现一些值已经过优化。如下图所示。 len 标志 add_len 参数都已优化出来。
如何对Linux内核进行去优化以避免将这些变量优化出来?

enter image description

1 个答案:

答案 0 :(得分:1)

使用-Og构建可以消除这些问题。

我不知道Linux内核是否可以这样编译。

请注意,通常您可以发现"优化的"通过向上或向下堆栈来获得价值,例如如果来电者看起来像这样:

udp_recvmsg(sk, foo->msg, foo->msglen, ...);

然后查看来电者*foo会告诉您len,尽管它已在udp_recvmsg本身进行了优化。