4

32 ビットの Intel ノートブックからリモートの Intel 64 ビット マシンで (テスト用のバグのない単純な Hello World アプリケーション) をデバッグしようとしています。

走る

gcc -g -o cexecute cexecute.c
gdbserver localhost:2345 cexecute

リモートマシン上。

ノートブックのローカル ポート2345を同じリモート ポートに転送した後、実行gdbして入力します

target remote localhost:2345

私は得る:

GNU gdb (GDB) 7.5-ubuntu
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
(gdb) target remote localhost:2345
Remote debugging using localhost:2345
warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration
of GDB.  Attempting to continue with the default i386:x86-64 settings.

warning: Architecture rejected target-supplied description
Remote register badly formatted: T0506:0000000000000000;07:e0dbffffff7f0000;10:c0b6ddf7ff7f0000;thread:p64bc.64bc;core:6;
here: 00000000;07:e0dbffffff7f0000;10:c0b6ddf7ff7f0000;thread:p64bc.64bc;core:6;

以前はこれが機能していたので、混乱しています。実行するようにアドバイスする逆の問題 (64 ビット マシンからの 32 ビット アプリケーション) についても同様の質問がありますset architecture: GDB でのリモート デバッグ エラー

私はさまざまな議論でこれを試みましたが、成功しませんでした。また、ターゲット プラットフォームのタイプi386:x86-64も正しいようです。両方のマシンで ubuntu Linux を実行します。前回 gdb を正常に実行したので、両方のマシンにバージョン更新をインストールしました。欠陥はどこにありますか?

4

1 に答える 1

3

前回 gdb を正常に実行したので、両方のマシンにバージョン更新をインストールしました。欠陥はどこにありますか?

欠陥はあなたの記憶にあるに違いありませんi*86-linux-*.GDBのバージョンはx86-64プロセスをデバッグできません.クロスデバッガーとしてビルドする必要があります.gdb

何かのようなもの:

./configure --target=x86_64-linux-gnu --host=i686-linux-gnu \
            --build=i686-linux-gnu CC=gcc AR=ar RANLIB=ranlib

動作するはずです。

于 2013-01-20T18:40:26.447 に答える