This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] mips_frame_chain && dummy frames
- From: Michael Snyder <msnyder at redhat dot com>
- To: Andrew Cagney <ac131313 at ges dot redhat dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Mon, 19 Aug 2002 16:05:43 -0700
- Subject: Re: [RFA] mips_frame_chain && dummy frames
- Organization: Red Hat, Inc.
- References: <3D5ADA4D.E078C49@redhat.com> <3D605DE2.4070203@ges.redhat.com>
Andrew Cagney wrote:
>
> > This fixes five FAILS in callfuncs.exp for Irix cc -o32,
> > for backtraces from nested call dummies. Tested to make sure
> > it doesn't break -n32, either for cc or gcc.
>
> Yes ok (mips should switch to generic dummy frames but that's another
> story :-).
>
> Andrew
Thanks, committed.
> > 2002-08-14 Michael Snyder <msnyder@redhat.com>
> >
> > * mips-tdep.c (mips_frame_chain): Check for call-dummy frames.
> >
> > Index: mips-tdep.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/mips-tdep.c,v
> > retrieving revision 1.101
> > diff -c -3 -p -r1.101 mips-tdep.c
> > *** mips-tdep.c 14 Aug 2002 19:17:39 -0000 1.101
> > --- mips-tdep.c 14 Aug 2002 22:43:48 -0000
> > *************** mips_frame_chain (struct frame_info *fra
> > *** 2294,2302 ****
> > we loop forever if we see a zero size frame. */
> > if (PROC_FRAME_REG (proc_desc) == SP_REGNUM
> > && PROC_FRAME_OFFSET (proc_desc) == 0
> > ! /* The previous frame from a sigtramp frame might be frameless
> > ! and have frame size zero. */
> > ! && !frame->signal_handler_caller)
> > return 0;
> > else
> > return get_frame_pointer (frame, proc_desc);
> > --- 2294,2304 ----
> > we loop forever if we see a zero size frame. */
> > if (PROC_FRAME_REG (proc_desc) == SP_REGNUM
> > && PROC_FRAME_OFFSET (proc_desc) == 0
> > ! /* The previous frame from a sigtramp frame might be frameless
> > ! and have frame size zero. */
> > ! && !frame->signal_handler_caller
> > ! /* Check if this is a call dummy frame. */
> > ! && frame->pc != mips_call_dummy_address ())
> > return 0;
> > else
> > return get_frame_pointer (frame, proc_desc);