Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Nick Roberts <nickrob@snap.net.nz>
Cc: Bob Rossi <bob@brasko.net>, gdb-patches@sources.redhat.com
Subject: Re: [PATCH: gdb/mi + doco] -var-update
Date: Fri, 17 Jun 2005 03:43:00 -0000	[thread overview]
Message-ID: <20050617034329.GH17013@nevyn.them.org> (raw)
In-Reply-To: <17013.54662.20554.239976@farnswood.snap.net.nz>

This is basically OK.  A couple of things:

On Mon, May 02, 2005 at 07:23:50PM +1200, Nick Roberts wrote:
> 2005-05-02  Nick Roberts  <nickrob@snap.net.nz>
> 
> 	* mi/mi-cmds.h: Add extern declarations for string constants for
> 	MI command options.
> 
> 	* mi/mi-cmd-var.c: Define string constants for MI command options.
> 	(mi_cmd_var_list_children): : Use string constants instead of

Stray colon there.

> 	literals for MI command options.
> 	(mi_cmd_var_update): New option --with-values for -var-update.
> 	(varobj_update_one): Add argument for new option.
> 
> 	* mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Use string
> 	constants instead of literals for MI command options.

> + extern const char mi_no_values[];
> + extern const char mi_with_values[];
> + extern const char mi_simple_values[];
> + extern const char mi_all_values[];

Both here and in mi-cmd-var.c, please list these in the changelog:
	* mi/mi-cmds.h (mi_no_values, mi_with_values, mi_simple_values)
	(mi_all_values): New declarations.
	* mi/mi-cmds.c (mi_no_values, mi_with_values, mi_simple_values)
	(mi_all_values): New string constants.
	...

> --- 268,296 ----
>       error (_("mi_cmd_var_list_children: Usage: [PRINT_VALUES] NAME"));
>   
>     /* Get varobj handle, if a valid var obj name was specified */
> !   if (argc == 1)
> !     var = varobj_get_handle (argv[0]);
> !   else
> !     var = varobj_get_handle (argv[1]);
>     if (var == NULL)
>       error (_("Variable object not found"));
>   
>     numchild = varobj_list_children (var, &childlist);
>     ui_out_field_int (uiout, "numchild", numchild);
>     if (argc == 2)
> !     {
> !       if (strcmp (argv[0], "0") == 0
> ! 	  || strcmp (argv[0], mi_no_values) == 0)
> ! 	print_values = PRINT_NO_VALUES;
> !       else if (strcmp (argv[0], "1") == 0
> ! 	       || strcmp (argv[0], mi_with_values) == 0)
> ! 	print_values = PRINT_ALL_VALUES;
> !       else
> ! 	error (_("Unknown value for PRINT_VALUES: \
> ! must be: 0 or \"%s\", 1 or \"%s\""), mi_no_values, mi_with_values);
> !     }
> !   else
> !     print_values = PRINT_NO_VALUES;
>   
>     if (numchild <= 0)
>       return MI_CMD_DONE;

Andrew's right that it would be nice to use mi_getopt here, but we
can't as-is; it doesn't do long options.  That'd be good to fix
someday.

You've replaced "--all-values" in the source with "--with-values" here. 
Surely that's a bug?

I don't remember the entire outcome of your discussion with Eli, but I
find the idea of having --with-values sometimes and --all-values other
times a bit confusing.  I went trying to figure out which meant what
and that's when I noticed this problem.

> !   if (argc == 1)
> !     name = argv[0];
> !   else
> !     name = (argv[1]);

Stray parentheses.

> !   if (argc == 2)
> !     {
> !       if (strcmp (argv[0], "0") == 0
> ! 	  || strcmp (argv[0], mi_no_values) == 0)
> ! 	print_values = PRINT_NO_VALUES;
> !       else if (strcmp (argv[0], "1") == 0
> ! 	       || strcmp (argv[0], mi_with_values) == 0)
> ! 	print_values = PRINT_ALL_VALUES;
> !       else
> ! 	error (_("Unknown value for PRINT_VALUES: \
> ! must be: 0 or \"%s\", 1 or \"%s\""), mi_no_values, mi_with_values);
> !     }
> !   else
> !     print_values = PRINT_NO_VALUES;
>   
>     /* Check if the parameter is a "*" which means that we want
>        to update all variables */

IIRC, you added the "0"/"1" compatibility to -var-list-children to make
life easier for Apple.  Is that right?  If so, do they need it here
also, or can we get away with just --all-values?  I've no real
objection to the 0/1, but they're a bit ugly.

> *** /home/nick/src/gdb/doc/gdb.texinfo.~1.249.~	2005-05-02 14:28:29.000000000 +1200
> --- /home/nick/src/gdb/doc/gdb.texinfo	2005-05-02 19:12:12.000000000 +1200
> ***************
> *** 20331,20336 ****
> --- 20331,20342 ----
>   variables.  With an optional preceding argument of 1 or @code{--all-values},
>   also prints their values.
>   
> + Returns a list of the children of the specified variable object.  With
> + just the variable object name as an argument or with an optional
> + preceding argument of 0 or @code{--no-values}, prints only the names
> + of the variables.  With an optional value for @var{print-values} of 1
> + or @code{--with-values}, also prints their values.
> + 
>   @subsubheading Example
>   
>   @smallexample

This paragraph must be in the wrong place.  It's mostly duplicating the
paragraph above it.

> ***************
> *** 20451,20463 ****
>   @subsubheading Synopsis
>   
>   @smallexample
> !  -var-update @{@var{name} | "*"@}
>   @end smallexample
>   
>   Update the value of the variable object @var{name} by evaluating its
>   expression after fetching all the new values from memory or registers.
> ! A @samp{*} causes all existing variable objects to be updated.
>   
>   
>   @node Annotations
>   @chapter @value{GDBN} Annotations
> --- 20457,20485 ----
>   @subsubheading Synopsis
>   
>   @smallexample
> !  -var-update [@var{print-values}] @{@var{name} | "*"@}
>   @end smallexample
>   
>   Update the value of the variable object @var{name} by evaluating its
>   expression after fetching all the new values from memory or registers.
> ! A @samp{*} causes all existing variable objects to be updated.  With
> ! just a single argument or with an optional value for
> ! @var{print-values} of 0 or @code{--no-values}, prints only the names
> ! of the variables.  A value for @var{print-values} of 1 or
> ! @code{--with-values}, also prints their values.

I think the comma probably shouldn't be there.

> ! @subsubheading Example
>   
> + @smallexample
> + (@value{GDBP})
> + -var-assign var1 3
> + ^done,value="3"
> + (@value{GDBP})
> + -var-update --all-values var1
> + ^done,changelist=[@{name="var1",value="3",in_scope="true",
> + type_changed="false"@}]
> + (@value{GDBP})
> + @end smallexample
>   
>   @node Annotations
>   @chapter @value{GDBN} Annotations
> 

-- 
Daniel Jacobowitz
CodeSourcery, LLC


  reply	other threads:[~2005-06-17  3:43 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-20  2:06 Nick Roberts
2005-02-20  5:02 ` Eli Zaretskii
2005-02-20  5:51   ` Nick Roberts
2005-02-20 15:31     ` Eli Zaretskii
2005-02-21  4:33       ` Nick Roberts
2005-02-21  7:17         ` Eli Zaretskii
2005-02-22  9:23           ` Nick Roberts
2005-02-22  9:34             ` Eli Zaretskii
2005-02-27  5:03               ` Nick Roberts
2005-02-27 16:53                 ` Eli Zaretskii
2005-02-27 16:56                   ` Nick Roberts
2005-02-28 12:27                     ` Eli Zaretskii
2005-03-19  3:55                 ` Nick Roberts
2005-04-01  1:51                   ` Bob Rossi
2005-04-01 11:01                     ` Nick Roberts
2005-05-02  2:06                     ` Nick Roberts
2005-05-02  4:05                       ` Daniel Jacobowitz
2005-05-02  7:24                         ` Nick Roberts
2005-06-17  3:43                           ` Daniel Jacobowitz [this message]
2005-06-17 10:09                             ` Eli Zaretskii
2005-06-17 14:04                               ` Daniel Jacobowitz
2005-06-18  8:53                                 ` Eli Zaretskii
2005-07-03 19:56                                   ` Daniel Jacobowitz
2005-07-04  3:07                                     ` Nick Roberts
2005-07-04  3:51                                       ` Daniel Jacobowitz
2005-07-04  4:55                                     ` Eli Zaretskii
2005-07-04  5:02                                       ` Daniel Jacobowitz
2005-07-04 10:17                                         ` Nick Roberts
2005-07-06 10:00                                         ` Nick Roberts
2005-07-15  1:44                                           ` Daniel Jacobowitz
2005-07-15  3:59                                             ` Nick Roberts
2005-07-15  4:16                                               ` Daniel Jacobowitz
2005-07-15 15:11                                                 ` Nick Roberts
2005-07-15 15:28                                                   ` Daniel Jacobowitz
2005-07-15 22:37                                                     ` Nick Roberts
2005-07-04 21:15                                       ` Nick Roberts
2005-07-04 22:24                                         ` Eli Zaretskii
2005-07-05  3:25                                           ` Nick Roberts
2005-07-05 19:37                                             ` Eli Zaretskii
2005-07-15  9:42                                               ` Nick Roberts
2005-06-17 11:42                             ` Nick Roberts
2005-06-17 14:06                               ` Daniel Jacobowitz
2005-06-17 23:12                                 ` Nick Roberts
2005-02-21  2:36 ` Andrew Cagney
2005-02-21  3:28   ` Nick Roberts

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050617034329.GH17013@nevyn.them.org \
    --to=drow@false.org \
    --cc=bob@brasko.net \
    --cc=gdb-patches@sources.redhat.com \
    --cc=nickrob@snap.net.nz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox