This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Fix Irix core dumps


jkingdon@engr.sgi.com wrote:
> 
> Reading a core dump on Irix has bit-rotted some time since GDB 4.18
> (which works).  The culprit has to do with the size of the floating
> point registers (which thus affects all the registers after them in
> the registers array).  The enclosed fix does enable GDB to read Irix
> core dumps and doesn't look too hideous to me.  But I'd welcome
> suggestions if there is a better way.
> 
> I also had to make a straightforward fix to bfd/irix-core.c; I'll be
> sending that one to the binutils list.
> 
> 2001-02-09  Jim Kingdon  <jkingdon@engr.sgi.com>
> 
>         * mips-tdep.c (mips_register_raw_size): If FP_REGISTER_DOUBLE,
>         then floating point registers are 8 bytes.

I'm checking this in (indented slightly different) (just got to wait for
a build).
I'm pretty sure it will affect GDBs ability to communicate with some
obscure remote target (what register_raw_size() returns changed :-/)
however, as it was it was certainly wrong.

Thanks!
	Andrew

PS: Have I ever mentioned my desire to completly separate remote.c from
register_raw_size() and instead have something outside of GDB specifying
what a packet looks like? :-)


> Index: mips-tdep.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/mips-tdep.c,v
> retrieving revision 1.40
> diff -u -r1.40 mips-tdep.c
> --- mips-tdep.c 2001/02/08 06:03:53     1.40
> +++ mips-tdep.c 2001/02/09 22:59:43
> @@ -420,7 +420,15 @@
>    if (mips64_transfers_32bit_regs_p)
>      return REGISTER_VIRTUAL_SIZE (reg_nr);
>    else
> -    return MIPS_REGSIZE;
> +    {
> +      /* For MIPS_ABI_N32 (for example) we need 8 byte floating point
> +         registers.  */
> +      if (reg_nr >= FP0_REGNUM && reg_nr < FP0_REGNUM+32
> +         && FP_REGISTER_DOUBLE)
> +       return 8;
> +
> +      return MIPS_REGSIZE;
> +    }
>  }
> 
>  int


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]