This is the mail archive of the gdb-patches@sourceware.cygnus.com mailing list for the GDB project. See the GDB home page for more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
> The following patch fixes a problem in the dummy stackframe > pushing/popping code in alpha-tdep.c. The original code (ab)uses > the field iopt in the PDR struct from ../include/coff/sym.h to > save away the fake fp. The problem is that this is a long (only a 32 bits > on a 32 bit host). This means the vfp is hosed after returning > from a "call" command. > > If we (ab)use cbLineOffet which is of type bfd_vma then things work > better. Thanks; I've committed this change. 1999-05-04 Jim Blandy <jimb@zwingli.cygnus.com> Fix from John Rigby. Richard Henderson says it seems okay. * alpha-tdep.c (PROC_DUMMY_FRAME): As long as we're abusing fields of (proc)->pdr, we ought to at least abuse one large enough to hold the value we're trying to store in it. iopt is only 32 bits wide; cbLineOffset is a bfd_vma. Index: alpha-tdep.c =================================================================== RCS file: /cvs/cvsfiles/devo/gdb/alpha-tdep.c,v retrieving revision 2.41 diff -c -c -b -F'^(' -r2.41 alpha-tdep.c *** alpha-tdep.c 1999/03/12 17:14:22 2.41 --- alpha-tdep.c 1999/05/04 18:48:33 *************** *** 108,115 **** */ #define PROC_LOW_ADDR(proc) ((proc)->pdr.adr) /* least address */ #define PROC_HIGH_ADDR(proc) ((proc)->pdr.iline) /* upper address bound */ ! #define PROC_DUMMY_FRAME(proc) ((proc)->pdr.iopt) /* frame for CALL_DUMMY */ #define PROC_FRAME_OFFSET(proc) ((proc)->pdr.frameoffset) #define PROC_FRAME_REG(proc) ((proc)->pdr.framereg) #define PROC_REG_MASK(proc) ((proc)->pdr.regmask) --- 108,118 ---- */ #define PROC_LOW_ADDR(proc) ((proc)->pdr.adr) /* least address */ + /* These next two fields are kind of being hijacked. I wonder if + iline is too small for the values it needs to hold, if GDB is + running on a 32-bit host. */ #define PROC_HIGH_ADDR(proc) ((proc)->pdr.iline) /* upper address bound */ ! #define PROC_DUMMY_FRAME(proc) ((proc)->pdr.cbLineOffset) /*CALL_DUMMY frame */ #define PROC_FRAME_OFFSET(proc) ((proc)->pdr.frameoffset) #define PROC_FRAME_REG(proc) ((proc)->pdr.framereg) #define PROC_REG_MASK(proc) ((proc)->pdr.regmask)