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.