Hi! On Tue, 9 Apr 2013 16:41:17 -0700, Joel Brobecker <brobec...@adacore.com> wrote: > > The i386 GNU/Hurd ELF core format actually follows the uaccess gregset_t > > array format, not the Mach thread state format. This fixes gdb reading > > it. > > > > * gdb/i386gnu-nat.c (CREG_OFFSET): New macro. > > (creg_offset): New array. > > (CREG_ADDR): Use creg_offset instead of reg_offset.
In context with the related Hurd patch, <http://git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=c48e6ec36da97d514488f88fa4b9c268fd0d6284>, I have now reviewed, tested, and committed this patch. > Do you have write access to the GDB repository? Samuel asked me to commit it on his behalf (and likewise his other patch, once reviewed). > do you have > copyright assignment papers on file? This has been completed. > > --- a/gdb/i386gnu-nat.c.original 2013-02-11 00:46:02.000000000 +0000 > > +++ b/gdb/i386gnu-nat.c 2013-02-11 00:48:09.000000000 +0000 > > @@ -56,8 +56,21 @@ > > REG_OFFSET (ds), REG_OFFSET (es), REG_OFFSET (fs), REG_OFFSET (gs) > > }; > > > > +/* Offset to the greg_t location where REG is stored. */ > > +#define CREG_OFFSET(reg) (REG_##reg * 4) > > + > > +/* At CREG_OFFSET[N] is the offset to the greg_t location where > > + the GDB register N is stored. */ > > +static int creg_offset[] = > > +{ > > + CREG_OFFSET (EAX), CREG_OFFSET (ECX), CREG_OFFSET (EDX), CREG_OFFSET > > (EBX), > > + CREG_OFFSET (UESP), CREG_OFFSET (EBP), CREG_OFFSET (ESI), CREG_OFFSET > > (EDI), > > + CREG_OFFSET (EIP), CREG_OFFSET (EFL), CREG_OFFSET (CS), CREG_OFFSET (SS), > > + CREG_OFFSET (DS), CREG_OFFSET (ES), CREG_OFFSET (FS), CREG_OFFSET (GS) > > +}; > > Unless it was done on purpose, we try to limit the size of lines > to 70 characters, only extending it to up to 80 when it makes > a difference.... I left this as is; the idea is to keep it visually comparable to the reg_offset definition just above (same sequence of registers; see the first line of the patch's context). Grüße, Thomas
pgpk97Wo2p_VB.pgp
Description: PGP signature