Re: New scope checking patch

Rob Quill
2008-01-30T12:06:03Z

On 19/01/2008, Jim Blandy <jimb@codesourcery.com> wrote:
>
> "Rob Quill" <rob.quill at gmail.com> writes:
> > 2008-01-18 Rob Quill <rob.quill@gmail.com>
> >
> > Add $in_scope as a type of expression.
> > * c-exp.y (IN_SCOPE): New token.
> > (exp): IN_SCOPE (name): evaluates to 1 if name is in scope, 0
> > otherwise.
> > (yylex): Match "$in_scope" as IN_SCOPE token
>
> This looks good.
>
> I see you've got your copyright paperwork filed with the FSF.
>
> If you haven't already (and only if you haven't already), you'll need
> to visit:
>
> http://sourceware.org/cgi-bin/pdw/ps_form.cgi
>
> to get added to the gdb project; list me as your approver.
>
> Since this is a user-visible feature, it needs documentation. Write
> up a patch to doc/gdb.texinfo, make sure it looks okay in .info and
> PDF form, and post the patch to the .texinfo file here. I think this
> also needs an entry in gdb/NEWS.

Hi,

I have attached the docs patch below. I wasn't sure how much to put in
the docs, so I just put a small paragraph in the place which seemed
most appropriate. Any feedback is much appreciated.

Rob

2008-01-18 Rob Quill <rob.quill@gmail.com>

* gdb.texinfo (Program Variables): Add a small paragraph about
the $in_scope operator.
* NEWS: Mentions $in_scope.

Index: gdb/NEWS
===================================================================
RCS file: /cvs/src/src/gdb/NEWS,v
retrieving revision 1.254
diff -u -p -r1.254 NEWS
--- gdb/NEWS 30 Jan 2008 00:51:49 -0000 1.254
+++ gdb/NEWS 30 Jan 2008 11:56:12 -0000
@@ -3,6 +3,12 @@

*** Changes since GDB 6.7

+* New expression type
+
+$in_scope(...)
+ The value of this expression is 1 if the variable within the
+ parentheses is within the current scope, 0 otherwise.
+
* New native configurations

NetBSD/hppa hppa*-*netbsd*
Index: gdb/doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.463
diff -u -p -r1.463 gdb.texinfo
--- gdb/doc/gdb.texinfo 30 Jan 2008 04:27:11 -0000 1.463
+++ gdb/doc/gdb.texinfo 30 Jan 2008 11:56:35 -0000
@@ -5676,6 +5676,13 @@ scope resolution operator in @value{GDBN
@c FIXME: Um, so what happens in one of those rare cases where it's in
@c conflict?? --mew

+The @code{$in_scope} operator can be used to check if a variable is in scope,
+returning 1 if it is and 0 if it is not. This is most useful when scripting GDB
+as it means that the script will ot stop executing if a variable is
not in scope,
+provided that you check if it is in scope before you test it's value.
The operator
+only works on variables and will not work on structure members or
array elements
+for instance.
+
@cindex wrong values
@cindex variable values, wrong
@cindex function entry/exit, wrong values of variables