x86_64 suse linux上で32ビットアプリケーションをリモートデバッグしようとしましたが、この「リモートレジスタが不正にフォーマットされました」というエラーが発生しました。GDBによるリモートデバッグエラー
私は、ポート12345(gdbserverをローカルホスト:12345 my_prog)に耳を傾けてgdbserverをを起動
そして、これは誤りです:
$ gdb
GNU gdb 6.6
Copyright (C) 2006 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 "x86_64-suse-linux".
(gdb) target remote <ip>:12345
Remote debugging using <ip>:12345
Remote register badly formatted: T0506:0000000000000000;07:80b8bcff00000000;10:4028f0f700000000;
here: 0000000;07:80b8bcff00000000;10:4028f0f700000000;
(gdb)
これは、デバッグサーバマシン(のuname -a)です。
Linuxサーバ2.6.16.60-0.31-SMP#1 SMP火10月7日午前16時16分29秒UTC 2008 x86_64のx86_64でのx86_64のGNU/Linuxの
そして、これは、デバッグ・クライアント・マシンである(のuname -a):
Linuxクライアント2.6.16.54-0.2.5-デフォルト#1月1月21日午後01時29分51秒UTC 2008 x86_64のx86_64でのx86_64のGNU/Linuxの
両方のマシンが(ただし、仮想マシンで実行されていますVMWare)。 gdbserverバイナリは、クライアントマシンからサーバマシンにコピーされます。
(デバッグサーバー上のランタイム環境は本番のようであり、任意の開発ツールが含まれていない、などのソースコードにアクセスするので、私は、リモートデバッグ)
任意の提案を歓迎いたします。
UPDATE:
セットi386アーキテクチャを:これは、GDBで次のコマンドを発行して私のために働いた x86-64の
i386(自動)です。実際には、 "i386:x86-64:intel"に設定すると、エラーメッセージなしで起動しますが、コードをステップインすると、 "0x1f7fb5000番地のメモリにアクセスできません"というメッセージが表示されます。 – boffman
クライアントマシンですべてのもの(gdbserver、gdb、32-bit app)を実行できますか?あなたは同じ問題にぶつかりますか? – sigjuice