This is the mail archive of the
gdb-prs@sources.redhat.com
mailing list for the GDB project.
gdb/1420: Use frame_id_unwind, not frame_id_inner for step into/out-of logic
- From: ac131313 at redhat dot com
- To: gdb-gnats at sources dot redhat dot com
- Date: 16 Oct 2003 18:10:21 -0000
- Subject: gdb/1420: Use frame_id_unwind, not frame_id_inner for step into/out-of logic
- Reply-to: ac131313 at redhat dot com
>Number: 1420
>Category: gdb
>Synopsis: Use frame_id_unwind, not frame_id_inner for step into/out-of logic
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: maintenance
>Submitter-Id: net
>Arrival-Date: Thu Oct 16 18:18:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: ac131313@redhat.com
>Release: unknown-1.0
>Organization:
>Environment:
>Description:
Comment from infrun.c:
/* In the case where we just stepped out of a function into the
middle of a line of the caller, continue stepping, but
step_frame_id must be modified to current frame */
#if 0
/* NOTE: cagney/2003-10-16: I think this frame ID inner test is too
generous. It will trigger on things like a step into a frameless
stackless leaf function. I think the logic should instead look
at the unwound frame ID has that should give a more robust
indication of what happened. */
if (step-ID == current-ID)
still stepping in same function;
else if (step-ID == unwind (current-ID))
stepped into a function;
else
stepped out of a function;
/* Of course this assumes that the frame ID unwind code is robust
and we're still getting there with that one. */
#endif
{
struct frame_id current_frame = get_frame_id (get_current_frame ());
if (!(frame_id_inner (current_frame, step_frame_id)))
step_frame_id = current_frame;
}
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: