From: Nick Roberts <nickrob@snap.net.nz>
To: Eli Zaretskii <eliz@gnu.org>, Andrew Cagney <cagney@gnu.org>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [PATCH: gdb/mi + doco] -var-update
Date: Sun, 27 Feb 2005 05:03:00 -0000 [thread overview]
Message-ID: <16929.8147.933720.246602@farnswood.snap.net.nz> (raw)
In-Reply-To: <01c51898$Blat.v2.4$f6fd05c0@zahav.net.il>
Here is my latest set of patches.
Eli,
I think it addresses your concerns. I have changed -var-list-children to
use --with-values instead of --all-values. In the unlikely event that any other
frontend is using this, "-var-list-children 1 varno" will still be backwardly
compatible.
Andrew,
Is this acceptable or is mi-getopt a pre-condition?
Nick
*** /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-27 14:14:36.000000000 +1300
***************
*** 30,35 ****
--- 30,40 ----
#include <ctype.h>
#include "gdb_string.h"
+ const char novalues[] = "\"--no-values\"";
+ const char withvalues[] = "\"--with-values\"";
+ const char simplevalues[] = "\"--simple-values\"";
+ const char allvalues[] = "\"--all-values\"";
+
extern int varobjdebug; /* defined in varobj.c */
static int varobj_update_one (struct varobj *var);
***************
*** 262,284 ****
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], "--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;
if (numchild <= 0)
return MI_CMD_DONE;
--- 267,295 ----
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], "--no-values") == 0)
! print_values = PRINT_NO_VALUES;
! else if (strcmp (argv[0], "1") == 0
! || strcmp (argv[0], "--with-values") == 0)
! print_values = PRINT_ALL_VALUES;
! else
! error (_("Unknown value for PRINT_VALUES: must be: 0 or %s, 1 or %s"),
! novalues, withvalues);
! }
! else
! print_values = PRINT_NO_VALUES;
if (numchild <= 0)
return MI_CMD_DONE;
***************
*** 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 */
--- 437,466 ----
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], "--with-values") == 0)
! print_values = PRINT_ALL_VALUES;
! else
! error (_("Unknown value for PRINT_VALUES: must be: 0 or %s, 1 or %s"),
! novalues, withvalues);
! }
! else
! print_values = PRINT_NO_VALUES;
/* Check if the parameter is a "*" which means that we want
to update all variables */
***************
*** 524,529 ****
--- 554,561 ----
if (mi_version (uiout) > 1)
cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, NULL);
ui_out_field_string (uiout, "name", varobj_get_objname (*cc));
+ if (print_values)
+ ui_out_field_string (uiout, "value", varobj_get_value (*cc));
ui_out_field_string (uiout, "in_scope", "true");
ui_out_field_string (uiout, "type_changed", "false");
if (mi_version (uiout) > 1)
*** /home/nick/src/gdb/mi/mi-cmd-stack.c.~1.25.~ 2005-02-13 00:36:20.000000000 +1300
--- /home/nick/src/gdb/mi/mi-cmd-stack.c 2005-02-26 19:50:40.000000000 +1300
***************
*** 151,157 ****
|| strcmp (argv[0], "--simple-values") == 0)
print_values = PRINT_SIMPLE_VALUES;
else
! error (_("Unknown value for PRINT_VALUES: must be: 0 or \"--no-values\", 1 or \"--all-values\", 2 or \"--simple-values\""));
list_args_or_locals (1, print_values, frame);
return MI_CMD_DONE;
}
--- 151,158 ----
|| strcmp (argv[0], "--simple-values") == 0)
print_values = PRINT_SIMPLE_VALUES;
else
! error (_("Unknown value for PRINT_VALUES: must be: 0 or %s, 1 or %s, 2 or %s"),
! novalues, allvalues, simplevalues);
list_args_or_locals (1, print_values, frame);
return MI_CMD_DONE;
}
*** /home/nick/src/gdb/mi/mi-cmds.h.~1.15.~ 2005-01-25 22:30:39.000000000 +1300
--- /home/nick/src/gdb/mi/mi-cmds.h 2005-02-26 19:44:02.000000000 +1300
***************
*** 50,55 ****
--- 50,60 ----
PRINT_SIMPLE_VALUES
};
+ extern const char novalues[];
+ extern const char withvalues[];
+ extern const char simplevalues[];
+ extern const char allvalues[];
+
typedef enum mi_cmd_result (mi_cmd_argv_ftype) (char *command, char **argv, int argc);
/* Older MI commands have this interface. Retained until all old
*** /home/nick/src/gdb/doc/gdb.texinfo.~1.232.~ 2005-02-13 00:36:20.000000000 +1300
--- /home/nick/src/gdb/doc/gdb.texinfo 2005-02-26 19:41:39.000000000 +1300
***************
*** 18797,18805 ****
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 preceding argument of 1 or @code{--all-values},
! also prints their values.
@subsubheading Example
--- 18797,18805 ----
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
***************
*** 18921,18933 ****
@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
--- 18921,18949 ----
@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.
+ @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
next prev parent reply other threads:[~2005-02-27 1:20 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 [this message]
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
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=16929.8147.933720.246602@farnswood.snap.net.nz \
--to=nickrob@snap.net.nz \
--cc=cagney@gnu.org \
--cc=eliz@gnu.org \
--cc=gdb-patches@sources.redhat.com \
/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