MinGW クロスデバッグ


[Fedora 11]

クロスデバッグ用サンプルの準備

簡単な使用例を紹介します。使用するサンプルを、MinGW Cross Compile 環境で -g オプションをつけてビルドしておきます。ここでは sample.exe とします。

$ i686-pc-mingw32-gcc -g sample.c -o sample.exe

ビルドしたプログラム sample.exe を Windows 側にコピーしておきます。

ページ先頭に戻る

[Windows Vista]

Windows 側(ターゲットプラットフォーム)

SourceForge.net Logo   MinGW クロスデバッグ用 gdbserver の入手先
  [UTIL] GDB

まず gdbserver-X.X.X-XXX-YYYMMDD.exe を、ターゲットプラットフォームである Windows にインストールします。

gdbserver-6.8.50-003-20090606.exe(インストーラ)

コマンドプロンプトを起動し、GDBserver で sample.exe を起動します。その際、TCP 接続からの情報を listen するホストと使用するポートを指定します。ここでは、ホストに 192.168.11.2 の Linux クロス開発マシン、ポート 60000 を指定しています。

>gdbserver 192.168.11.2:60000 sample.exe

GDBserver で sample.exe を起動

ページ先頭に戻る

[Fedora 11]

Linux 側(クロス開発マシン)

クロス開発環境である Linux では、クロスターゲットの GDB、i686-pc-mingw32-gdb で、ターゲットプラットフォームと同じプログラム sample.exe を起動します。ソースファイル sample.c も同じディレクトリに置きます。

$ i686-pc-mingw32-gdb sample.exe

GDB のコンソール上で、ターゲットプラットフォームの GDBserver(Windows の192.168.11.4、ポート 60000)に接続します。

つぎにプログラムの先頭にブレークポイントを設定し、最初のブレークポイントに達するまで(run ではなく)continue でプログラムを走らせます。プログラムはもちろん、ターゲットプラットフォーム上である Windows 上で実行されます。

(gdb) target remote 192.168.11.4:60000
(gdb) break main
(gdb) continue

GDB によるリモートデバッグ

ページ先頭に戻る

DDD の利用

クロスでバッグに、GUI フロントエンドである DDD, Data Display Debugger を利用することもできます。DDD は Fedora のパッケージをそのまま利用します。DDD を起動するときに、使用するデバッガを指定するだけです。

$ ddd --debugger i686-pc-mingw32-gdb &

DDD が起動した後、メニューからデバッグするプログラム sample.exe を読み込み、画面下の (gdb) コンソールで、GDB だけの時と同じように GDBserver に接続し、ブレークポイントを設定して continue でデバッグを開始します。

DDD によるリモートデバッグ

結局のところ GDB のコマンドを知らなければ、DDD を使いこなすことはできませんが、変数の値や、ブレークポイントの位置が視覚的に判るので、気分的には楽にデバッグできるでしょう。


関連サイト

GDB: The GNU Project Debugger
The GNU Project Debugger のホームページです。
Remote cross-target debugging with GDB and GDBserver
GDB/GDBserverによるクロスターゲットのリモートデバッグ(邦訳)
Linix.com のサイトに Avi Rozen 氏によるクロスターゲットのリモートでバッグについての詳しい説明があります。邦訳が SourceForge.jp にあります。
(C) 2009 - 2017 Fuhito Suguri
クリエイティブ・コモンズ・ライセンス
This site by Fuhito Suguri is licensed under a Creative Commons 表示 - 継承 3.0 Unported License.
Ads by Sitemix