This is the mail archive of the 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

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.


>  c. line in function not in inner frame --> continue until current frame pops.


> (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


>  e. funcname not called from current frame --> cont until current frame pops.


> (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.


So AFAICT, we have only one corner case to agree upon.
"until factorial".

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