2017-01-31 5 views
0

kgdbを設定して、Ubuntudebianカーネルをデバッグします。make-kpkg kgdb用に-O0をビルドする

デフォルトでは、make-kpkgでコンパイルされたカーネルは最適化されており(-O2)、変数をデバッグできません。

カーネルコンパイルの最適化を無効にする方法はありますか(たとえば、-O0)?

ありがとうございました!

現在、GDBは、変数が最適化された報告:

(gdb) p pb 
$5 = <optimized out> 
+0

'-g3 -O0'や' -g3 -O1'を使って、デバッグ結果を得ることができます。 '-g3'にはシンボリック定義が含まれます。カーネルが '-O0'でどれくらいうまく動作するのかよく分かりません。痛いほど遅くなる可能性があります。 '-g3 -O0'に関心のあるモジュールをビルドできますか? – jww

答えて

1

Linuxカーネルは、-O2によって異なります。これは、より低い最適化レベルではコンパイルされません。マクロのように動作するはずのインライン関数など、特定の最適化が有効になっている場合にのみ機能する、いくつかのGCC「トリック」を使用します。

関連する問題