いくつかの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台のマシンしか必要ありません。