0
我要設置kgdb
調試Ubuntu
debian
內核。閱讀make-kpkg構建內核-O0的是kgdb
默認情況下,由make-kpkg
編譯的內核已被優化(-O2
),所以我無法調試變量。
有沒有辦法來禁用內核編譯優化(例如,-O0
)?
謝謝!
目前,GDB報告變量進行了優化:
(gdb) p pb
$5 = <optimized out>
我要設置kgdb
調試Ubuntu
debian
內核。閱讀make-kpkg構建內核-O0的是kgdb
默認情況下,由make-kpkg
編譯的內核已被優化(-O2
),所以我無法調試變量。
有沒有辦法來禁用內核編譯優化(例如,-O0
)?
謝謝!
目前,GDB報告變量進行了優化:
(gdb) p pb
$5 = <optimized out>
Linux內核依賴於-02。它不會以較低的優化級別進行編譯。它使用了幾個GCC「技巧」,這些技巧只在某些優化開啓時才起作用,例如應該像宏一樣行事的內聯函數。
用'-g3 -O0'或'-g3 -O1'可能會得到最好的調試結果。 '-g3'包含符號定義。我不知道內核在'-O0'上的性能如何。它可能會非常緩慢。你可以在'-g3 -O0'建立感興趣的模塊嗎? – jww