gdbproxyマシン

組込みターゲットをJTAGデバッグする場合、gdbでは相手をリモート・デバッギと設定します。つまり、シリアルなりネットで接続されたワークステーション上に、デバッグようのスタブが組み込まれていると考えるのです。実際にはJTAG ICEと接続された何らかのソフトがTCP/IP上でgdbのリモート・デバッグプロトコルに応答することによって、gdbをだまします。
さて、gdbproxyもTCP/IPをしゃべるので別マシンにしたいなと考えました。というのは、VMWare上のSUSE 10.1では、なぜかサスペンドからの復帰後にgdbproxyがエラーを起こすからです。いちいちリブートするのでは面倒なので、別の小さなマシンにgdbproxyを置けば済むと考えました。OSを小さなものにすればリブートは早くなります。そして当然ですがここで言うマシンとは仮想マシンです。複数の仮想マシンを走らせ、gdbproxyに問題が起きた時には専用の仮想マシンをリブートすればいいのです。
問題は小さなOSが見つからないことです。小さいといっても、どこかでgdbproxyをビルドして、それを持ち込める仕掛けが必要です。puppyLinuxはとても小さいのですが、その仕掛けがしんどそうなのでパスしました。Knoppixは相当小さくできそうですが、めちゃめちゃ時間をかけたあとにブートしなかったので挫折。gentooLinuxはコアパッケージがかなり大きそうなのでメリットなし。
結局SUSE 10.1をGUIなしでインストールしました。500MBくらいのディスクを食いますが、TOPPERS/JSP開発用のマシンでビルドしたgdbproxyをそのまま使えるのが味噌です。
動作は確認しました。後は自動ログインを設定すればLinux側の準備は終わりです。VMWareにはこのような環境で使えるとてもいい機能がありますが、それはまた別の話。