This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Fix Irix core dumps
- To: gdb-patches at sources dot redhat dot com
- Subject: Fix Irix core dumps
- From: jkingdon at engr dot sgi dot com
- Date: Fri, 9 Feb 2001 18:21:00 -0500 (EST)
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.
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