This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA/PATCH] breakpoint.c: fix until command
- From: Michael Snyder <msnyder at redhat dot com>
- To: Elena Zannoni <ezannoni at redhat dot com>
- Cc: Daniel Jacobowitz <drow at mvista dot com>, gdb-patches at sources dot redhat dot com
- Date: Thu, 02 Jan 2003 12:40:04 -0800
- Subject: Re: [RFA/PATCH] breakpoint.c: fix until command
- Organization: Red Hat, Inc.
- References: <15875.24035.153991.390184@localhost.redhat.com> <3E07A1F2.E7B77C89@redhat.com> <20021224000211.GA8155@nevyn.them.org> <3E07B0DC.CC733B10@redhat.com> <20021224010306.GA10409@nevyn.them.org> <3E14A019.4A600913@redhat.com> <15892.41806.882466.952438@localhost.redhat.com>
Elena Zannoni wrote:
>
> Michael Snyder writes:
> > Daniel Jacobowitz wrote:
> > >
> > > On Mon, Dec 23, 2002 at 04:57:00PM -0800, Michael Snyder wrote:
> > > > Daniel Jacobowitz wrote:
> > > > >
> > > > > On Mon, Dec 23, 2002 at 03:53:22PM -0800, Michael Snyder wrote:
> > > > > > Elena Zannoni wrote:
> > > > > > >
> > > > > > > This fixes the problem reported in:
> > > > > > > http://sources.redhat.com/ml/gdb/2002-11/msg00144.html
> > > > > > >
> > > > > > > testsuite patch coming
> > > > > >
> > > > > > Elena, can you sum up in a sentence or two, what this change
> > > > > > is intended to do?
> > > > >
> > > > > [Since I happen to be reading email right now, I'll do a sketchy
> > > > > imitation.]
> > > > >
> > > > > The problem is that we were marking the breakpoint on the
> > > > > user-specified line with the current frame. But when we hit that
> > > > > breakpoint, if it's in a different function, it will have a different
> > > > > frame. Right now we see that the frames don't match and resume
> > > > > executing.
> > > > >
> > > > > Oops.
> > > >
> > > > OK, thanks. But we _need_ to mark the breakpoint with the current
> > > > frame, because if the breakpoint is in the current frame, we don't
> > > > want to stop in an inner recursive call, ie. not until the current
> > > > frame hits the breakpoint.
> > > >
> > > > So this needs further consideration, and I don't think it can
> > > > be approved as is.
> > >
> > > OK. Is that really what you expect "until" to do, though? I'd be
> > > pretty surprised if an inner function call executed that line without
> > > stopping.
> >
> > Nevertheless, that is and has always been the intent.
> > If you're in factorial(5), and you say "until 100",
> > you don't stop until line 100 is hit by factorial(5).
>
> I am tracking down this to something that changed between (ahem...)
> 4.18 and 5.0. The code in breakpoint.c didn't change. Right now,
> stepping the two gdb's side to side, I can see a difference in
> get_prev_frame, because of a different value returned by
> FRAME_CHAIN_VALID. :-( (i have not still stepped past that to see how
> that could influence the until foo behavior, maybe it doesn't).
>
> The behavior you specify above is in 5.0 and not in 4.18, while the
> 'until foo' works in 4.18 and is broken in 5.0.
>
> More digging.
Heh. Clearly we need more "until" tests. ;-/