GDBServerの稼動する、リモートのRedHatLinuxマシンに対して、Windows上のGNU gdb 5.2.1からリモートデバッグをする方法がわかりません。

C:\>gdb
GNU gdb 5.2.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-mingw32".
(gdb) target remote 172.16.12.249:10000 /home/innami/helloworld
172.16.12.249:10000 /home/innami/helloworld: No such file or directory.

のように、ターゲットプログラムを見つけてくれません。方法を教えてください。

回答の条件
  • 1人3回まで
  • 登録:2007/01/19 14:12:00
  • 終了:2007/01/26 14:15:03

回答(2件)

id:hujikojp No.1

hujikojp回答回数101ベストアンサー獲得回数72007/01/19 16:43:26

ポイント35pt

実行ファイルは targetコマンドではなく、gdb起動時の引数か fileコマンドを使って指定します。

もちろん、それをやる前提として、local側の file systemに実行ファイル (ソースコードデバッグするならもちろんソースコードも) が必要です。

ちなみにちょっと心配になったのですが、gdbを実行する環境が (mingwなど) remoteの環境と異なる場合、cross-debug用に configureされた gdbも必要になります。念のため。

id:y-innami

レスポンスが遅くなり申し訳ありません。

シンボルテーブルを別途fileコマンドでローカルの実効モジュールから読み込む必要があると言うことですね。

クロスでバッグ用のgdbが必要と言うことは、近日になってやっと気づいたところです。

mingw,cygwinをgdb実効マシン、Linuxをリモートマシンとする場合どのようにクロスでバッグを用意すればよいでしょうか。教えて下さい。

2007/01/24 03:20:10
id:hujikojp No.2

hujikojp回答回数101ベストアンサー獲得回数72007/01/25 03:30:21

ポイント35pt

cross debuggerは Unix同士の環境上でしか使ったことがないので、あくまで一般論ですが:

  1. gdbのソースを取得 (remote側の gdbserverと versionが同じなのが好ましい。 gdbserverの versionは gdbserver --versionででます)
  2. local (cygwin or mingw) でソースを展開。
  3. ./configure --target=i586-pc-linux
  4. Makefileができるので make && make install

これでできるはずです。忙しいので気分転換にこちらでも試してみよう...

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません