This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA/PATCH] breakpoint.c: fix until command


Michael Snyder writes:
 > Elena Zannoni wrote:
 > > 
 > > Michael Snyder writes:
 > 
 > >  > If you say "until <line>", and the line is inside the current function,
 > >  > you can impose the frame restriction.  If the line (or address) is outside
 > >  > the current function, or if you give a function name or something else,
 > >  > you can't.  And I don't think we can code that distinction at runtime.
 > > 
 > > I think we should come up with a behavior matrix, something like:
 > > 
 > > until:
 > >  continue until next source line is reached. If already at the last line
 > >  of current function, continue until current frame pops.
 > > 
 > > until line:
 > >  a. line in current function (1) --> continue until the line is reached.
 > 
 > Agreed, with the qualification given.
 > 
 > >  b. line in function in inner frame --> continue until the line is reached.
 > 
 > Agreed.
 > 
 > >  c. line in function not in inner frame --> continue until current frame pops.
 > 
 > Agreed.
 > 
 > > (1) However if current function is recursive, a. should become like
 > >     b. But we want to enforce a different behavior, because we don't
 > >     want to stop in the inner frame. 
 > 
 > I think this could be stated simply as "continue until the line 
 > is reached by the current execution frame".
 > 
 > > --> this is the main problem,
 > >     because the condition is basically impossible to figure out at run
 > >     time.
 > 
 > If we can figure it out at runtime, you would agree to it?
 > 
 > > until funcname:
 > >  d. funcname called from current frame (2) --> continue until func is reached
 > 
 > Agreed.
 > 
 > >  e. funcname not called from current frame --> cont until current frame pops.
 > 
 > Agreed.
 > 
 > > (2) if current function is recursive and funcame == current function
 > >     we want to stop at the next inner invocation of funcname
 > 
 > Ow, not obvious.  But since it clearly isn't specified now, 
 > I suppose we could make up such a stipulation if we choose to.
 > I don't even know what the traditional behavior would be in
 > this case.
 > 
 > 
 > > The 'continue until current frame pops' behavior is already there. It
 > > always puts another bp_until at the caller.
 > 
 > Yep.
 > 
 > So AFAICT, we have only one corner case to agree upon.
 > "until factorial".


yes yes yes!

(see my previous message).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]