This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [patch/rfc,6.1?] Use right frame ID in step_over_function
- From: Andrew Cagney <cagney at gnu dot org>
- To: Daniel Jacobowitz <drow at false dot org>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Sun, 29 Feb 2004 20:24:39 -0500
- Subject: Re: [patch/rfc,6.1?] Use right frame ID in step_over_function
- References: <40416BAF.1020308@gnu.org> <20040229171801.GK15749@nevyn.them.org>
The bug apepars when trying to step over nested shared library non-debug
info functions (making sense?).
No, not really. Could you give us a testcase? What platform have you
seen this behavior on?
PPC/NetBSD.
On Sat, Feb 28, 2004 at 11:33:51PM -0500, Andrew Cagney wrote:
Hello,
This goes into the "how did it ever work" category. The idea of
step_over_function is that it:
- finds the caller's resume address
- finds the caller's frame ID
and then sets a breakpoint for that caller instance of the function.
The current code:
- finds the caller's resume address
- finds the _callee_ frame ID
and then uses that to set the breakpoint. Now that is plain weird! It
only works because either:
- the step_frame_id patches up the bug
- the values match as GDB is using the inner-most, rather than
outer-most frame address as part of the frame ID
The NetBSD/PPC case, the old code does this:
/* NOTE: cagney/2002-04-14: The ->frame points to the inner-most
address of the current frame. Things might be easier if the
->frame pointed to the outer-most address of the frame. In the
mean time, the address of the prev frame is used as the base
address of this frame. */
The bug apepars when trying to step over nested shared library non-debug
info functions (making sense?).
So I suspect it applied to all PPC, just that NetBSD's are a bit wierd.
Andrew