GDBはGNUデバッガーとも呼ばれる。GNUとは、FSF(Free Software Foundation)が進めているUNIX互換ソフトウェア群の開発プロジェクトの総称 であり、フリーソフトウェアの理念に従った修正・再配布自由なUNIX互換シス テムの構築を目的としている。
GDBプログラムを、コマンド・ラインまたはDDD(Data Display Debugger)な どのグラフィカル・ツールから実行することによりプログラム中のエラーを探 り出すことができる。
GDBは、通常ユーザー・プログラムのデバッグに使われ るが、リモートデバッグ機能を用いればOSのカーネルのデバッグにも使用する ことができる。
リモートデバッグは通常の方法でGDBを実行させることができないマシン上の プログラムをデバッグする場合に用いられる機能である。
具体的には、OSのカ ーネルのデバッグをする場合や、自身でGDBを十分に動かせるだけの機能を持 たないOSを使用した小規模なシステム上のプログラムのデバッグを行う場合に 用いられる。
リモートデバッグを行う際は、デバッグをしたいマシンとは別にGDBを実行で きる環境を持ったマシンを用意して接続し、GDBを実行できるマシン側からGDB を実行できないマシン側のデバッグをする。
この際の通信はそれぞれのマシン のシリアルポートをシリアルケーブルで接続して行われる。
デバッグスタブは次の3つのサブルーチンを提供する。デバッグ対象のプログ ラムの先頭付近には次のサブルーチンを記述した行を追加してやる必要がある。
はじめに、
http://kgdb.linsyssoft.com/quickstart.htm
の手順に従いリモートデバッグを試みたが、
項目「Compiling the kernel on the development machine」
の項目3でカーネルコンフィギュレーションを行うために
xconfig、oldconfigを実行したが、コンフィグ画面が表示されず失敗した。
参考ページでは、カーネルのソースをダウンロードしてきてカーネルの
イメージを作っていたが、
カーネルハッキングの項目を有効にしたカーネルのイメージを作成できれば
ページ通りの手順を踏まなくてもよいだろうと思われる。
そこで、現在使用しているマシンのカーネルハッキングの設定を変更して再構築
したカーネルのイメージを使用することにした。
その結果、カーネルのイメージは作成できたものの、使用しているマシンでは
カーネルの再構築の際にgrubではなく
liloを用いるため、項目7のgrubに
関する設定の箇所を飛ばしてカーネルを再構築した。
その結果、成功すれば、ターゲットマシンは接続待ちのメッ
セージを出力して停止するはずなのだが、通常通りに起動して失敗した。