Ich habe versucht, eine 32-Bit-Anwendung auf x86_64-suse-Linux remote zu debuggen, aber diesen Fehler "Remote-Registrierung schlecht formatiert".Remote-Debug-Fehler mit GDB
Ich starte das gdbserver als auf Port 12345 bis (gdbserver localhost: 12345 my_prog)
Und das ist der Fehler:
$ 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)
Dies ist die Debug-Server-Maschine (uname -a):
Linux-Server 2.6.16.60-0.31-smp # 1 SMP Di 7. Oktober 16.16.29 UTC 2008 x86_64 x86_64 x86_64 GNU/Linux
Und dies ist die Debug-Client-Maschine (uname -a):
Linux-Client 2.6.16.54-0.2.5-default # 1 Mo 21. Januar 13.29.51 UTC 2008 x86_64 x86_64 x86_64 GNU/Linux
Beide Maschinen obwohl in virtuellen Maschinen ausgeführt werden (VMWare). Die Binärdatei gdbserver wird vom Clientcomputer auf den Servercomputer kopiert.
(I Remote-Debug weil die Laufzeitumgebung auf dem Debug-Server produktionsähnlichen ist, und enthält keine Entwicklungs-Tools, Zugriff auf den Quellcode etc.)
Alle Vorschläge sind willkommen.
UPDATE: dies für mich gearbeitet, indem Sie den folgenden Befehl in gdb Ausgabe:
Satz-Architektur i386: x86-64
Es heißt i386 (auto). Eigentlich, wenn ich arch auf "i386: x86-64: intel" setze, startet es ohne die Fehlermeldung, aber wenn ich versuche, den Code zu betreten, gibt es mir: "Kann nicht auf Speicher an Adresse 0x1f7fb5000 zugreifen". – boffman
Können Sie die ganze Sache (gdbserver, gdb, 32-Bit-App) auf dem Client-Rechner ausführen? Treten die gleichen Probleme auf? – sigjuice