我正在调试Linux内核。
我用-O1优化级别编译内核。(请注意,Linux内核不能用-O0编译)。
在使用gdb调试它时,我发现一些值被优化了。如下图所示。len、标志和add_len参数都经过优化处理。
我如何去优化Linux内核,以避免这些变量被优化出来?

发布于 2017-04-11 05:17:37
使用-Og构建应该可以消除这些问题。
我不知道Linux内核是否可以这样编译。
请注意,通常您可以通过向上或向下堆栈来发现“优化的输出”值,例如,如果调用者看起来如下:
udp_recvmsg(sk, foo->msg, foo->msglen, ...);然后查看调用方中的*foo,将告诉您len,尽管它是在udp_recvmsg本身中优化出来的。
https://stackoverflow.com/questions/43336100
复制相似问题