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] Fix problem with watchpoint test in gdb.base/commands.exp


> gdb.texinfo says:
> 
>   @value{GDBN} automatically deletes watchpoints that watch local
>   (automatic) variables, or expressions that involve such variables, when
>   they go out of scope, that is, when the execution leaves the block in
>   which these variables were defined.
> 
> I interpret "go out of scope" to be talking about stack frames,
> but it's likely that gdb can have bugs where it's checking for scope
> by looking at line numbers.

FYI,  out of scope includes:

foo ()
{
    int bar;

    ....
    {
       int bar;
       .... <watch bar>
    }

}

so there may not necessarily be a frame change.  However, if the frame 
has gone (or is being destroyed) the variable is out of scope.

> So actually I think that the right result for this use case is
> UNRESOLVED, which means that a human has to look at it each time.
> 
> So I don't recommend this patch as is.
> 
> How about this: enhance watchpoint_command_test to be two tests,
> one non-recursive, and one recursive.  Then the non-recursive one
> will be simple non-controversial and it can PASS on either the last
> line of the callee or the next line of the caller.  The recursive
> one will be trickier, it will have to look at the value of some
> recursion variable to make sure that it is in the correct scope.
> 
> Michael C

Andrew




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