カーネルのデバッグ

カーネルのデバッグ

いくつかのLinuxデバイスドライバプロセスといくつかの最小カーネルプロセス(スレッドとコンテキストの切り替えと割り込み管理)を研究したいと思います。

Linuxカーネルをデバッグする方法は?これを行うための基本的なステップは何ですか?

最近、私は新しいカーネル(2.6.34.7)を2.6.29カーネルを実行しているマシンにうまくコンパイルして統合しました。

答え1

それはあなたが本当に必要なものに依存します。おそらく簡単なprintk()機能で始めるのが良いでしょう。/procカーネルから有用な情報を取得するために使用できるインターフェースもあります。

もっと複雑なものが必要な場合は、KGDB(カーネルデバッガ)を使用してください。

答え2

カーネルソースフォルダに移動し、Documentation/フォルダ内を見てください。kernel-parameters.txtデバッグ参照用のファイルを探すことから始めてください。

カーネルがCONFIG_DEBUG_KERNELオプションセットにコンパイルされている場合、loglevelカーネルメッセージの詳細はブートオプションで簡単に調整できます。

答え3

KGDBに加えて、他のオプションはQEMUとGDBを使用してカーネルをデバッグすることです。 KGDBとは異なり、QEMU-GDBの組み合わせには1台のマシンしか必要ありません。

関連情報