[Armadillo:03457] Re: GDBについて

Takenoshita Koyo email@hidden
2008年 9月 30日 (火) 17:24:25 JST


以下の手順で動作させることができました。

ホストPC: Debian etch
ホストPCのIPアドレス: 192.168.0.1
ArmadilloのIPアドレス:192.168.0.2
gdbに使用するポート番号:9876
デバッグ対象のプログラム:sample
として、

1. gdbの用意
[PC ~/]$ sudo apt-get install gdb-arm-linux-gnu
[PC ~/]$ arm-linux-gnu-gdb -v
GNU gdb 6.4.90

2. gdbserverの用意
[PC ~/]$ wget
http://armadillo.atmark-techno.com/files/downloads/armadillo/cross-dev/debugger/gdbserver.gz
[PC ~/]$ gunzip gdbserver.gz
(展開されたgdbserverをArmadilloに転送)

3. デバッグ対象のプログラムをコンパイル
[PC ~/]$ arm-linux-gnu-gcc -g -o sample sample.c
(作成されたsampleをArmadilloに転送)

4. Armadillo上でgdbserverを起動
[Armadillo ~/]# ./gdbserver 192.168.0.1:9876 sample

5. ホストPC上でgdbを実行
[PC ~/]$ arm-linux-gnu-gdb
(gdb) file sample
(gdb) target remote 192.168.0.2:9876
(gdb) b main
(gdb) c
...

新しいgdbを使用し、gdbのfileコマンドでシンボルをロードしてあげると、
上手く動いてくれるようです。
(そのため、デバッグ対象のプログラムファイルがホストPC上にも必要です。)
古いgdbだとなぜダメなのかまでは追えていません。

2008-09-29 (月) の 15:55 +0900 に Murakami さんは書きました:
> こんにちは、 murayoと申します。
> GDBでのデバッグがうまくいきません。
> Armadillo300で gdbserver をつかってデバッグしようとしています。
> 開発者サイトからgdbserverと、Linux用arm-linux-gdb、 Cygwin用arm-linux-gdb.exeを
> ダウンロードしてテストしていました。
> コンパイルは ATDE を使いコンパイル、リンクに -g オプションを付け実行ファイル生成。
> (サンプルのmakefile に -g オプションを追加。)
> 単独でターゲット上で動作することを確認。
> ところがこの正しく動作する実行ファイルを gdbserver と gdb でデバッグしようとすると、
> gdbとgdbserverのコネクトまではOKですが、何かコマンドを発行すると、(例 b 
> main など)
> 「segmentation fault」 または「セグメンテーション違反です。」と表示されて終了してしまいます。
> Cygwin版もLinux版もどちらのgdbも同じ結果です。
> 何を間違っているのかヒントをいただければありがたいです。
> よろしくお願いします。
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
-- 
Takenoshita Koyo




armadillo メーリングリストの案内