From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27715 invoked by alias); 20 Feb 2005 15:31:57 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 27697 invoked from network); 20 Feb 2005 15:31:54 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 20 Feb 2005 15:31:54 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id j1KFVrmo009285 for ; Sun, 20 Feb 2005 10:31:54 -0500 Received: from localhost.redhat.com (vpn50-50.rdu.redhat.com [172.16.50.50]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id j1KFVqK08288; Sun, 20 Feb 2005 10:31:52 -0500 Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id C3CA47D79; Sun, 20 Feb 2005 10:28:51 -0500 (EST) Message-ID: <4218ACB1.6010508@gnu.org> Date: Mon, 21 Feb 2005 02:36:00 -0000 From: Andrew Cagney User-Agent: Mozilla Thunderbird 0.8 (X11/20041020) MIME-Version: 1.0 To: Nick Roberts Cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH: gdb/mi + doco] -var-update References: <16919.7660.144228.334687@farnswood.snap.net.nz> In-Reply-To: <16919.7660.144228.334687@farnswood.snap.net.nz> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2005-02/txt/msg00213.txt.bz2 Nick Roberts wrote: > This patch is very similar to ones that I have previously contributed for > -var-list-children and -stack-list-locals. Testcases to follow > (assuming the patch is favourably received). > > Nick > > > Purpose: > > Currently the MI command "-var-update" gives the names of the variable objects > but not their value which must be accessed individually (using the MI command > -var-evaluate-expression). This means that a front end can take too long > processing a separate MI command for variable object. This patch adapts > "-var-update" so that it gives values, if required. The existing behaviour is > preserved for backward compatibility. > > *** /home/nick/src/gdb/mi/mi-cmd-var.c.~1.21.~ 2005-02-13 00:36:20.000000000 +1300 > --- /home/nick/src/gdb/mi/mi-cmd-var.c 2005-02-19 22:49:18.000000000 +1300 > *************** > *** 32,38 **** > > extern int varobjdebug; /* defined in varobj.c */ > > ! static int varobj_update_one (struct varobj *var); > > /* VAROBJ operations */ > > --- 32,39 ---- > > extern int varobjdebug; /* defined in varobj.c */ > > ! static int varobj_update_one (struct varobj *var, > ! enum print_values print_values); > > /* VAROBJ operations */ > > *************** > *** 426,436 **** > struct cleanup *cleanup; > char *name; > int nv; > > ! if (argc != 1) > ! error (_("mi_cmd_var_update: Usage: NAME.")); > > ! name = argv[0]; > > /* Check if the parameter is a "*" which means that we want > to update all variables */ > --- 427,450 ---- > struct cleanup *cleanup; > char *name; > int nv; > + enum print_values print_values; > > ! if (argc != 1 && argc != 2) > ! error (_("mi_cmd_var_update: Usage: [PRINT_VALUES] NAME.")); > > ! if (argc == 1) name = argv[0]; > ! else name = (argv[1]); > ! > ! if (argc == 2) > ! if (strcmp (argv[0], "0") == 0 > ! || strcmp (argv[0], "--no-values") == 0) > ! print_values = PRINT_NO_VALUES; > ! else if (strcmp (argv[0], "1") == 0 > ! || strcmp (argv[0], "--all-values") == 0) > ! print_values = PRINT_ALL_VALUES; > ! else > ! error (_("Unknown value for PRINT_VALUES: must be: 0 or \"--no-values\", 1 or \"--all-values\"")); > ! else print_values = PRINT_NO_VALUES; Nick, it should use mi-getopt (which correctly [?] implements the MI input syntax). If you find doing this alters the commands semantics (quoting of parameters might be affected) then we'll need to introduce a new ``fixed'' command. Andrew (I'm fine with the theory)