警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

Howto : GDB serverを使う(Armadillo-J)

対象製品: Armadillo-J

Armadillo-J上で gdbserver を動作させ、開発用PC上の gdb と通信させることで、リモートデバッグが可能になります。

1. ホスト用GDBの作成

GDBプロジェクトから、最新のGDBソースコードを取得します。以下の手順で、取得したソースコードを展開してコンパイルを行います。


 [PC ~]$ tar zxvf gdb-x.x.tar.gz
 [PC ~]$ cd gdb-x.x
 [PC gdb-x.x]$ ./configure --target=arm-elf --prefix=/usr/local/gdb/
 [PC gdb-x.x]$ make
 [PC gdb-x.x]$ sudo make install

(※最後のコマンドに失敗する場合は、rootユーザで最後のコマンドを実行して下さい)
以上で、/usr/local/gdb/bin/ 配下に arm-elf-gdb が作成されます。

2. gdbserverの作成

(※ uClinux-distのバージョンが 2004/06/10 以前のものでは、gdbserverが正常に動作しません。最新版をダウンロードして下さい)
開発用PCで、uClinux-distディレクトリに移動後、make menuconfig とコマンド入力してコンフィギュレーション画面を起動します。

画面の起動後


 [ ] Customize Vendor/User Settings (NEW)

をチェックして保存・終了します。

次に起動した画面で、


 Miscellaneous Applications  --->
    [ ] gdbserver

を選択して保存・終了します。

make コマンドを実行すると、uClinux-dist/romfs/bin/ 配下に gdbserver が作成されます。

3. リモートデバッグの実行

ここでは、
・Armadillo-JのIPアドレス "192.168.1.100"
・開発用PCのIPアドレス "192.168.1.10"
・デバッグ時のポート番号 "9876"
として説明します。

まず、デバッグ対象のプログラムを作成します。「サンプルプログラムの作成」を参照してプログラムを作成して下さい。(この時デバッグ用シンボルを作成するため、Makefile の CONFIG_USER_DEBUG 行を有効にしてから、コンパイルして下さい。)

コンパイルが終了すると、sample と sample.gdb という二つのファイルが作成されますが、sample はArmadillo-Jで、sample.gdb は開発用PC上で使用します。 gdbserver と デバッグ対象プログラムを Armadillo-Jにファイル転送し、実行権を与えてからgdbserverを実行します。


 [armadillo /home/ftp/pub]# chmod +x gdbserver sample
 [armadillo /home/ftp/pub]# ./gdbserver 192.168.1.10:9876 ./sample

次に、開発用PC上で arm-elf-gdb を起動し、gdbserverと接続します


 [PC ~]$ /usr/local/gdb/bin/arm-elf-gdb sample.gdb
 GNU gdb x.x
 <中略>
 (gdb) target remote 192.168.1.100:9876

 Remote debugging using 192.1681.100:9876
 0x005c0050 in _start ()

ブレイクポイントを設定して、継続実行します。


 (gdb) b main
 Breakpoint 1 at 0x5c0078: file sample.c, line 4.
 (gdb) c
 Continuing.  

 Breakpoint 1, main (argc=0, argv=0xa8) at sample.c:4
 4             printf("Hello world!\n");
 (gdb)
カテゴリ: