14. リモートカーネル・デバッギング

 もし、通常の方法では GDB を動かすことができないマシン上で動作しているプログラムを デバッグしたい場合は、リモート・デバッギングという方法が有効です。 例えば、オペレーティング・システムのカーネルをデバッグする場合や、 全ての機能を持ったデバッガを走らせるのに必要なパワーを持った一般的な オペレーティング・システムではない、スモールシステムをデバッグする ような場合です。現在の GDB は、シリアル回線を使ったリモート・ デバッギングをサポートしています。

 リモートマシン上のデバッグ対象のプログラムは、後述するプロトコルを使い、 シリアル回線を通じて GDB と会話するデバイスドライバを持っている必要が あります。同一バージョンの GDB は、このプロトコルを使って普通に利用する ことができます。リモート・デバッギング・ドライバのいくつかの サンプルが GDB とともに供給されています; 詳細は、配給されている GDB の `README' ファイルを参照して下さい。

 通信プロトコルの詳細は、GDB のソースファイル `remote.c' の コメントを参照して下さい。


14.1 リモート・デバッギング用のコマンド

 リモート・デバッギングを開始するには、GDB を起動し、リモートマシンで 動作している実行可能ファイルを指定します。これは、GDB に、プログラムの シンボルとピュアテキストを見つける方法を教えます。次に、pid の かわりにデバイス名を引数として持つ `attach' コマンドを使って、 コミュニケーションを確立します。例えば:
attach /dev/ttyd
は、シリアル回線が `/dev/ttyd' という名称のデバイスに接続されている 場合の指定です。これは、もしリモートマシンがまだ停止していない場合、 停止させます。

 そこで、あなたは全ての通常コマンドを、リモートプログラムの調査や データの変更、そしてステップ実行や継続のために使うことができます。

 リモートプログラムから回復してそのデバッグをやめる場合は `detach' コマンドを使います。


目次に戻る