プログラムがセグメンテーションフォルトで不正終了した場合に、GDBで原因 調査するというのはよく聞く話である。しかし、こういったソフトウェア開発 の後行程で使用するだけではなく、前行程でも使うべきである。これは挙動が よく分からないプログラムの動作確認にGDBが有効であるからだ。 今回は特にprint文が動作しない段階のLinuxカーネルの動作をGDBで確認する。 ただし、あくまでQEMU上での動作である為、QEMUでサポートしていないハード やQEMUが再現しきれていないハードの動作部分については未対応である。そう いった場合はICEなどの治具を用いる必要がある。 1. カーネルコンフィグの設定 CONFIG_DEBUG_KERNELを有効にする。 Symbol: DEBUG_KERNEL [=y] Type : boolean Prompt: Kernel debugging Loca
![QEMU上のLinuxカーネルをGDBでデバッグする](https://cdn-ak-scissors.b.st-hatena.com/image/square/4e4871d6fb07827ae58fc89f0d20b1eaf4dd21a7/height=288;version=1;width=512/https%3A%2F%2Fimage.jimcdn.com%2Fapp%2Fcms%2Fimage%2Ftransf%2Fnone%2Fpath%2Fsdcc8e67e188f864a%2Fimage%2Fi2b366d197e75c3a7%2Fversion%2F1432690924%2Fimage.png)