次: , 前: VxWorks Connection, 上: VxWorks Remote


13.4.6.2 VxWorksダウンロード

VxWorksターゲットに接続済みの状態で、 まだロードされていないオブジェクトをデバッグしたい場合には、 GDBのloadコマンドを使ってUNIXからVxWorksへ追加的にファイルをダウンロードすることができます。 loadコマンドの引数として指定されたオブジェクト・ファイルは、 実際には2回オープンされます。 まず、 コードをダウンロードするためにVxWorksターゲットによってオープンされ、 次にシンボル・テーブルを読み込むためにGDBによってオープンされます。 2つのシステム上のカレントな作業ディレクトリが異なると、 問題が発生します。 両方のシステムが同一のファイル・システムをNFSマウントしているのであれば、 絶対パスを使うことで問題を回避することができます。 そうでない場合は、 両方のシステム上で、 オブジェクト・ファイルが存在するディレクトリを作業ディレクトリにして、 パスを一切使わずにファイル名だけでファイルを参照するのが、 最も簡単でしょう。 例えば、 プログラムprog.oが、 VxWorksではvxpath/vw/demo/rdbに存在し、 ホストではhostpath/vw/demo/rdbに存在するとしましょう。 このプログラムをロードするには、 VxWorks上で以下のように実行します。

     -> cd "vxpath/vw/demo/rdb"

GDB上では、 以下のように実行します。

     (vxgdb) cd hostpath/vw/demo/rdb
     (vxgdb) load prog.o

GDBは次のような応答を表示します。

     Reading symbol data from wherever/vw/demo/rdb/prog.o... done.

ソース・ファイルを編集して再コンパイルした後に、 loadコマンドを使ってオブジェクト・モジュールを再ロードすることもできます。 ただし、 これを行うと、 GDBはその時点で定義されているすべてのブレイクポイント、 自動表示設定、 コンビニエンス変数を削除し、 値ヒストリを初期化してしまいますので、 注意してください (これは、 ターゲット・システムのシンボル・テーブルを参照するデバッガのデータ構造の完全性を保つために必要です)。