From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31932 invoked by alias); 30 Jan 2008 12:06:03 -0000 Received: (qmail 31922 invoked by uid 22791); 30 Jan 2008 12:06:02 -0000 X-Spam-Check-By: sourceware.org Received: from wa-out-1112.google.com (HELO wa-out-1112.google.com) (209.85.146.178) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 30 Jan 2008 12:05:37 +0000 Received: by wa-out-1112.google.com with SMTP id l35so323622waf.12 for ; Wed, 30 Jan 2008 04:05:36 -0800 (PST) Received: by 10.115.78.1 with SMTP id f1mr759814wal.100.1201694736033; Wed, 30 Jan 2008 04:05:36 -0800 (PST) Received: by 10.114.102.11 with HTTP; Wed, 30 Jan 2008 04:05:35 -0800 (PST) Message-ID: Date: Wed, 30 Jan 2008 13:11:00 -0000 From: "Rob Quill" To: jimb@red-bean.com, gdb-patches@sourceware.org Subject: Re: New scope checking patch In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-01/txt/msg00785.txt.bz2 On 19/01/2008, Jim Blandy wrote: > > "Rob Quill" writes: > > 2008-01-18 Rob Quill > > > > 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 * 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