Re: gdbserver does not work correctly

Doug Evans <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAP9bCMQmLxVCbPbEVSPSToGOVzkZvoKUmC1M8EAXv1kYHdM_9Q@mail.gmail.com>
On Wed, Jan 21, 2015 at 5:40 PM, fei ding <[email protected]> wrote:
> Hi everyone:
>
> I have a program, which uses LJMP instruction to switch from i386 to
> amd64 (both in Linux), and GDB does not support this architecture
> switch, but we have fixed this problem, and everything goes well, the
> registers' values are correct and 'disas'  command also works well
> after 'set architecture i386:x86_64', but when we compile a gdbserver,
> and use it to debug a remote target(and this target is just the same
> as the program we test early, which we used as a local target), it
> cannot work well. Almost every registers' values are wrong, and all
> the new registers, such as R8-R15, are assigned as 0, RIP is 0 also.
> does anyone familiar with this problem? or does anyone know which
> piece of source code I should see.

The remote protocol doesn't AFAICT support changing the architecture
in a live program.
If you want to try to make this work you'll need to extend the protocol somehow.
The main file on the gdb side is remote.c.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.