14. リモートカーネル・デバッギング
もし、通常の方法では GDB を動かすことができないマシン上で動作しているプログラムを
デバッグしたい場合は、リモート・デバッギングという方法が有効です。
例えば、オペレーティング・システムのカーネルをデバッグする場合や、
全ての機能を持ったデバッガを走らせるのに必要なパワーを持った一般的な
オペレーティング・システムではない、スモールシステムをデバッグする
ような場合です。現在の GDB は、シリアル回線を使ったリモート・
デバッギングをサポートしています。
リモートマシン上のデバッグ対象のプログラムは、後述するプロトコルを使い、
シリアル回線を通じて GDB と会話するデバイスドライバを持っている必要が
あります。同一バージョンの GDB は、このプロトコルを使って普通に利用する
ことができます。リモート・デバッギング・ドライバのいくつかの
サンプルが GDB とともに供給されています;
詳細は、配給されている GDB の `README'
ファイルを参照して下さい。
通信プロトコルの詳細は、GDB のソースファイル `remote.c'
の
コメントを参照して下さい。
リモート・デバッギングを開始するには、GDB を起動し、リモートマシンで
動作している実行可能ファイルを指定します。これは、GDB に、プログラムの
シンボルとピュアテキストを見つける方法を教えます。次に、pid の
かわりにデバイス名を引数として持つ `attach' コマンドを使って、
コミュニケーションを確立します。例えば:
attach /dev/ttyd
は、シリアル回線が `/dev/ttyd' という名称のデバイスに接続されている
場合の指定です。これは、もしリモートマシンがまだ停止していない場合、
停止させます。
そこで、あなたは全ての通常コマンドを、リモートプログラムの調査や
データの変更、そしてステップ実行や継続のために使うことができます。
リモートプログラムから回復してそのデバッグをやめる場合は `detach'
コマンドを使います。
目次に戻る