Я пытался выполнить удаленную отладку 32-разрядного приложения на x86_64 suse linux, но получил эту ошибку «плохо отформатированный регистр».
Я запускаю gdbserver как прослушивающий порт 12345 (локальный хост gdbserver: 12345 my_prog)
И это ошибка:
$ 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 Вт 7 октября 16:16:29 UTC 2008 x86_64 x86_64 x86_64 GNU / Linux
А это клиентская машина отладки (uname -a):
Клиент Linux 2.6.16.54-0.2.5-default # 1 Пн 21 января 13:29:51 UTC 2008 x86_64 x86_64 x86_64 GNU / Linux
Хотя обе машины работают на виртуальных машинах (VMWare). Двоичный файл gdbserver копируется с клиентского компьютера на компьютер сервера.
(Я выполняю удаленную отладку, поскольку среда выполнения на сервере отладки похожа на рабочую и не содержит инструментов разработки, доступа к исходному коду и т. Д.)
Любые предложения приветствуются.
ОБНОВЛЕНИЕ: это сработало для меня, введя следующую команду в GDB:
установить архитектуру i386: x86-64