prgregset_t vs gdb_gregset_t on Linux: not the same!

H . J . Lu hjl@lucon.org
Fri Jun 8 22:14:00 GMT 2001


On Fri, Jun 08, 2001 at 03:59:07PM -0700, Daniel Jacobowitz wrote:
> On Fri, Jun 08, 2001 at 01:27:30PM -0700, Daniel Jacobowitz wrote:
> > In proc-service.c, we call fill_gregset and supply_gregset with a
> > prgregset_t cast to a gdb_gregset_t *.  The problem is, they really are
> > different.  We can mostly get away with this, because in almost all cases
> > glibc won't do anything with the gregset except pass it back to gdb again
> > (if the process has terminated, it will memset something the size of a
> > prgregset_t, though...).
> 
> The matching question here is that core-regset.c's fetch_core_registers
> calls supply_gregset with a gregset_t, but supply_gregset is prototyped
> with a gdb_gregset_t.  That doesn't work very well either.

I believe your Linux/MIPS patch is wrong. Please follow the examples in
linux/alpha, linux/i386 and linux/ppc. Basically, you have to include
config/tm-linux.h and config/nm-linux.h from the linux/mips header
files. But in order to do that, please make sure you do

#include <nm-linux.h>
#include <tm-linux.h>

not

#include "nm-linux.h"
#include "tm-linux.h"

Otherwise, you may not get the header files you want since mips has
both liltle and big endians. Once you have done that, your problem
should go away.



H.J.



More information about the Gdb mailing list