Has anyone been successful in connecting gdb to a 32-bit
guest while it is running on a 64 bit hypervisor? I have a 32-bit guest that
must run on a 64-bit hypervisor in order to use the Vt-d and Vmdq features of
the Intel NIC’s. The difficulty that I am seeing is that when gdb
connects remotely to the image through the gdb server, it is getting a register
mismatch, apparently because it is looking for 64 bit registers in the 32 bit
image, this despite the fact that I tell gdb that the image is an
‘i386’ architecture:
(gdb) set architecture i386
The target architecture is assumed to be i386
(gdb) target remote 127.0.0.1:9999
Remote debugging using 127.0.0.1:9999
Couldn't establish connection
to remote target
Remote register badly formatted:
T0506:19e0000002020000;07:0000010000000000;10:0000010000000000;thread:0;
here:
2020000;07:0000010000000000;10:0000010000000000;thread:0;
Is this a bug in gdbserver? Sure looks like it.