2
我正在調試Linux內核。如何優化Linux內核以避免優化值
我用-O1優化級別編譯內核。 (請注意,Linux內核不能用-O0編譯)。
當使用gdb進行調試時,我發現一些值被優化了。如下圖所示。 len,標誌和add_len參數全部優化出來。
如何優化Linux內核以避免優化這些變量?
我正在調試Linux內核。如何優化Linux內核以避免優化值
我用-O1優化級別編譯內核。 (請注意,Linux內核不能用-O0編譯)。
當使用gdb進行調試時,我發現一些值被優化了。如下圖所示。 len,標誌和add_len參數全部優化出來。
如何優化Linux內核以避免優化這些變量?
樓內有-Og
應該消除這些問題。
我不知道Linux內核是否可以這種方式進行編譯。
請注意,通常您可以通過上下堆疊來發現「優化出」值,例如,如果主叫方是這樣的:
udp_recvmsg(sk, foo->msg, foo->msglen, ...);
然後在調用者看着*foo
會告訴你len
儘管它在udp_recvmsg
本身被優化掉了。
非常感謝您的回覆。 我使用-Og優化級別。但是這些變量仍然被優化。 我嘗試用「volatile」來聲明這些變量,然後它們沒有被優化出來。 –