前: Server, 上: Remote Serial


13.4.1.6 gdbserve.nlmプログラムの使用

gdbserve.nlmはNetWareシステムでの制御プログラムです。 これによって、 target remoteコマンドでユーザ・プログラムをリモートのGDBに接続することができます。

GDBとgdbserve.nlmは、 標準のGDBリモート・シリアル・プロトコルを使って、 シリアル回線経由で通信します。

ターゲット・マシンでは:
デバッグしたいプログラムのコピーが1つ必要です。 gdbserve.nlmはユーザ・プログラムのシンボル・テーブルを必要とはしませんので、 スペースの節約が必要であれば、 プログラムをストリップすることができます。 ホスト・システム上のGDBが、 シンボルに関わるすべての処理を実行します。

gdbserve.nlmを使うには、 GDBとの通信方法、 ユーザ・プログラムの名前、 ユーザ・プログラムの引数を教えてやる必要があります。 構文は、 以下のとおりです。

          load gdbserve [ BOARD=board ] [ PORT=port ]
                        [ BAUD=baud ] program [ args ... ]
     

boardportがシリアル回線を指定します。 baudは接続に使われるボーレートを指定します。 portnodeのデフォルト値は0、 baudのデフォルト値は9600 bpsです。

例えば、 `foo.txt'という引数を指定してEmacsをデバッグし、 シリアル・ポート番号2、 ボード1を経由して19200 bpsの接続でGDBと通信するには、 以下のように実行します。

          load gdbserve BOARD=1 PORT=2 BAUD=19200 emacs foo.txt
     

GDBのホスト・マシンでは:
GDBはシンボル情報、 デバッグ情報を必要とするので、 ストリップされていないユーザ・プログラムのコピーが必要です。 通常どおり、 第1引数にユーザ・プログラムのローカル・コピーの名前を指定してGDBを起動します (シリアル回線の速度が9600 bps以外であれば、 `--baud'オプションも必要になります)。 その後、 target remoteコマンドによって gdbserve.nlmとの通信を確立します。 引数には、 装置名 (通常は/dev/ttybのようなシリアル装置) を指定します。 例えば、
          (gdb) target remote /dev/ttyb
     

は、 シリアル回線/dev/ttybを経由してgdbserve.nlmと通信します。