From: Nick Roberts <nickrob@snap.net.nz>
To: Eli Zaretskii <eliz@gnu.org>, gdb-patches@sources.redhat.com
Subject: Re: [PATCH] MI error messages
Date: Wed, 22 Jun 2005 11:06:00 -0000 [thread overview]
Message-ID: <17081.18071.112390.809523@farnswood.snap.net.nz> (raw)
In-Reply-To: <17080.35377.519988.619664@farnswood.snap.net.nz>
Nick Roberts writes:
> I'll look at submitting a revised patch for mi-cmd-stack.c and mi-cmd-var.c
I've defined two functions:
enum mi_cmd_result
mi_error (char* message)
{
mi_error_message = xstrprintf ("%s", message);
return MI_CMD_ERROR;
}
enum mi_cmd_result
mi_usage_error (char* message)
{
mi_error_message = xstrprintf (_("Usage: %s"), message);
return MI_CMD_ERROR;
}
and used them in mi-cmd-var.c as shown below.
WDYT?
Nick
*** mi/mi-cmd-var.c.~1.21.~ 2005-06-21 09:02:37.000000000 +1200
--- mi/mi-cmd-var.c 2005-06-22 22:56:03.000000000 +1200
***************
*** 52,58 ****
{
/* mi_error_message = xstrprintf ("mi_cmd_var_create: Usage:
...."); return MI_CMD_ERROR; */
! error (_("mi_cmd_var_create: Usage: NAME FRAME EXPRESSION."));
}
name = xstrdup (argv[0]);
--- 52,58 ----
{
/* mi_error_message = xstrprintf ("mi_cmd_var_create: Usage:
...."); return MI_CMD_ERROR; */
! return mi_usage_error ("-var-create NAME FRAME EXPRESSION.");
}
name = xstrdup (argv[0]);
***************
*** 71,77 ****
name = varobj_gen_name ();
}
else if (!isalpha (*name))
! error (_("mi_cmd_var_create: name of object must begin with a letter"));
if (strcmp (frame, "*") == 0)
var_type = USE_CURRENT_FRAME;
--- 71,77 ----
name = varobj_gen_name ();
}
else if (!isalpha (*name))
! return mi_error (_("Name of object must begin with a letter."));
if (strcmp (frame, "*") == 0)
var_type = USE_CURRENT_FRAME;
***************
*** 91,98 ****
var = varobj_create (name, expr, frameaddr, var_type);
if (var == NULL)
! error (_("mi_cmd_var_create: unable to create variable object"));
!
ui_out_field_string (uiout, "name", name);
ui_out_field_int (uiout, "numchild", varobj_get_num_children (var));
type = varobj_get_type (var);
--- 91,101 ----
var = varobj_create (name, expr, frameaddr, var_type);
if (var == NULL)
! {
! mi_error_message
! = xstrprintf (_("No symbol %s in current context."), expr);
! return MI_CMD_ERROR;
! }
ui_out_field_string (uiout, "name", name);
ui_out_field_int (uiout, "numchild", varobj_get_num_children (var));
type = varobj_get_type (var);
***************
*** 119,125 ****
struct cleanup *old_cleanups;
if (argc < 1 || argc > 2)
! error (_("mi_cmd_var_delete: Usage: [-c] EXPRESSION."));
name = xstrdup (argv[0]);
/* Add cleanup for name. Must be free_current_contents as
--- 122,128 ----
struct cleanup *old_cleanups;
if (argc < 1 || argc > 2)
! return mi_usage_error ("-var-delete [-c] EXPRESSION.");
name = xstrdup (argv[0]);
/* Add cleanup for name. Must be free_current_contents as
***************
*** 131,139 ****
if (argc == 1)
{
if (strcmp (name, "-c") == 0)
! error (_("mi_cmd_var_delete: Missing required argument after '-c': variable object name"));
if (*name == '-')
! error (_("mi_cmd_var_delete: Illegal variable object name"));
}
/* If we have 2 arguments they must be '-c' followed by a string
--- 134,142 ----
if (argc == 1)
{
if (strcmp (name, "-c") == 0)
! return mi_error (_("Missing required argument after '-c': variable object name."));
if (*name == '-')
! return mi_error (_("Illegal variable object name."));
}
/* If we have 2 arguments they must be '-c' followed by a string
***************
*** 142,148 ****
{
expr = xstrdup (argv[1]);
if (strcmp (name, "-c") != 0)
! error (_("mi_cmd_var_delete: Invalid option."));
children_only_p = 1;
xfree (name);
name = xstrdup (expr);
--- 145,151 ----
{
expr = xstrdup (argv[1]);
if (strcmp (name, "-c") != 0)
! return mi_error (_("Invalid option."));
children_only_p = 1;
xfree (name);
name = xstrdup (expr);
***************
*** 155,161 ****
var = varobj_get_handle (name);
if (var == NULL)
! error (_("mi_cmd_var_delete: Variable object not found."));
numdel = varobj_delete (var, NULL, children_only_p);
--- 158,164 ----
var = varobj_get_handle (name);
if (var == NULL)
! return mi_error (_("Variable object not found."));
numdel = varobj_delete (var, NULL, children_only_p);
***************
*** 174,190 ****
char *formspec;
if (argc != 2)
! error (_("mi_cmd_var_set_format: Usage: NAME FORMAT."));
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! error (_("mi_cmd_var_set_format: Variable object not found"));
formspec = xstrdup (argv[1]);
if (formspec == NULL)
! error (_("mi_cmd_var_set_format: Must specify the format as: \"natural\", \"binary\", \"decimal\", \"hexadecimal\", or \"octal\""));
len = strlen (formspec);
--- 177,193 ----
char *formspec;
if (argc != 2)
! return mi_usage_error ("-var-set-format NAME FORMAT.");
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! return mi_error (_("Variable object not found."));
formspec = xstrdup (argv[1]);
if (formspec == NULL)
! return mi_error (_("Must specify the format as: \"natural\", \"binary\", \"decimal\", \"hexadecimal\", or \"octal\"."));
len = strlen (formspec);
***************
*** 199,205 ****
else if (strncmp (formspec, "octal", len) == 0)
format = FORMAT_OCTAL;
else
! error (_("mi_cmd_var_set_format: Unknown display format: must be: \"natural\", \"binary\", \"decimal\", \"hexadecimal\", or \"octal\""));
/* Set the format of VAR to given format */
varobj_set_display_format (var, format);
--- 202,208 ----
else if (strncmp (formspec, "octal", len) == 0)
format = FORMAT_OCTAL;
else
! return mi_error (_("Unknown display format: must be: \"natural\", \"binary\", \"decimal\", \"hexadecimal\", or \"octal\"."));
/* Set the format of VAR to given format */
varobj_set_display_format (var, format);
***************
*** 216,227 ****
struct varobj *var;
if (argc != 1)
! error (_("mi_cmd_var_show_format: Usage: NAME."));
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! error (_("mi_cmd_var_show_format: Variable object not found"));
format = varobj_get_display_format (var);
--- 219,230 ----
struct varobj *var;
if (argc != 1)
! return mi_usage_error ("-var-show-format NAME.");
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! return mi_error (_("Variable object not found."));
format = varobj_get_display_format (var);
***************
*** 236,247 ****
struct varobj *var;
if (argc != 1)
! error (_("mi_cmd_var_info_num_children: Usage: NAME."));
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! error (_("mi_cmd_var_info_num_children: Variable object not found"));
ui_out_field_int (uiout, "numchild", varobj_get_num_children (var));
return MI_CMD_DONE;
--- 239,250 ----
struct varobj *var;
if (argc != 1)
! return mi_usage_error ("-var-info-num-children NAME.");
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! return mi_error (_("Variable object not found"));
ui_out_field_int (uiout, "numchild", varobj_get_num_children (var));
return MI_CMD_DONE;
***************
*** 259,271 ****
enum print_values print_values;
if (argc != 1 && argc != 2)
! 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);
--- 262,274 ----
enum print_values print_values;
if (argc != 1 && argc != 2)
! return mi_usage_error ("-var-list-children [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)
! return mi_error (_("Variable object not found."));
numchild = varobj_list_children (var, &childlist);
ui_out_field_int (uiout, "numchild", numchild);
***************
*** 277,283 ****
|| 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)
--- 280,286 ----
|| strcmp (argv[0], "--all-values") == 0)
print_values = PRINT_ALL_VALUES;
else
! return mi_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)
***************
*** 315,326 ****
struct varobj *var;
if (argc != 1)
! error (_("mi_cmd_var_info_type: Usage: NAME."));
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! error (_("mi_cmd_var_info_type: Variable object not found"));
ui_out_field_string (uiout, "type", varobj_get_type (var));
return MI_CMD_DONE;
--- 318,329 ----
struct varobj *var;
if (argc != 1)
! return mi_usage_error ("-var-info-type NAME.");
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! return mi_error (_("Variable object not found."));
ui_out_field_string (uiout, "type", varobj_get_type (var));
return MI_CMD_DONE;
***************
*** 333,344 ****
struct varobj *var;
if (argc != 1)
! error (_("mi_cmd_var_info_expression: Usage: NAME."));
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! error (_("mi_cmd_var_info_expression: Variable object not found"));
lang = varobj_get_language (var);
--- 336,347 ----
struct varobj *var;
if (argc != 1)
! return mi_usage_error ("-var-info-expression NAME.");
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! return mi_error (_("Variable object not found."));
lang = varobj_get_language (var);
***************
*** 355,366 ****
struct varobj *var;
if (argc != 1)
! error (_("mi_cmd_var_show_attributes: Usage: NAME."));
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! error (_("mi_cmd_var_show_attributes: Variable object not found"));
attr = varobj_get_attributes (var);
/* FIXME: define masks for attributes */
--- 358,369 ----
struct varobj *var;
if (argc != 1)
! return mi_usage_error ("-var-show-attributes NAME.");
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! return mi_error (_("Variable object not found."));
attr = varobj_get_attributes (var);
/* FIXME: define masks for attributes */
***************
*** 379,390 ****
struct varobj *var;
if (argc != 1)
! error (_("mi_cmd_var_evaluate_expression: Usage: NAME."));
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! error (_("mi_cmd_var_evaluate_expression: Variable object not found"));
ui_out_field_string (uiout, "value", varobj_get_value (var));
return MI_CMD_DONE;
--- 382,393 ----
struct varobj *var;
if (argc != 1)
! return mi_usage_error ("-var-evaluate-expression NAME.");
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! return mi_error (_("Variable object not found."));
ui_out_field_string (uiout, "value", varobj_get_value (var));
return MI_CMD_DONE;
***************
*** 397,417 ****
char *expression;
if (argc != 2)
! error (_("mi_cmd_var_assign: Usage: NAME EXPRESSION."));
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! error (_("mi_cmd_var_assign: Variable object not found"));
/* FIXME: define masks for attributes */
if (!(varobj_get_attributes (var) & 0x00000001))
! error (_("mi_cmd_var_assign: Variable object is not editable"));
expression = xstrdup (argv[1]);
if (!varobj_set_value (var, expression))
! error (_("mi_cmd_var_assign: Could not assign expression to varible object"));
ui_out_field_string (uiout, "value", varobj_get_value (var));
return MI_CMD_DONE;
--- 400,420 ----
char *expression;
if (argc != 2)
! return mi_usage_error ("-var-assign NAME EXPRESSION.");
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (argv[0]);
if (var == NULL)
! return mi_error (_("Variable object not found"));
/* FIXME: define masks for attributes */
if (!(varobj_get_attributes (var) & 0x00000001))
! return mi_error (_("Variable object is not editable."));
expression = xstrdup (argv[1]);
if (!varobj_set_value (var, expression))
! return mi_error (_("Could not assign expression to variable object."));
ui_out_field_string (uiout, "value", varobj_get_value (var));
return MI_CMD_DONE;
***************
*** 428,434 ****
int nv;
if (argc != 1)
! error (_("mi_cmd_var_update: Usage: NAME."));
name = argv[0];
--- 431,437 ----
int nv;
if (argc != 1)
! return mi_usage_error ("-var-update NAME.");
name = argv[0];
***************
*** 461,467 ****
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (name);
if (var == NULL)
! error (_("mi_cmd_var_update: Variable object not found"));
if (mi_version (uiout) <= 1)
cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, "changelist");
--- 464,470 ----
/* Get varobj handle, if a valid var obj name was specified */
var = varobj_get_handle (name);
if (var == NULL)
! return mi_error (_("Variable object not found."));
if (mi_version (uiout) <= 1)
cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, "changelist");
next prev parent reply other threads:[~2005-06-22 11:06 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-17 22:51 [PATCH] -stack-info-frames Nick Roberts
2005-06-17 23:01 ` Daniel Jacobowitz
2005-06-17 23:14 ` Daniel Jacobowitz
2005-06-18 1:28 ` Nick Roberts
2005-06-18 1:58 ` Daniel Jacobowitz
2005-06-18 3:16 ` Nick Roberts
2005-06-18 8:25 ` Eli Zaretskii
2005-06-18 8:51 ` Nick Roberts
2005-06-18 10:20 ` Eli Zaretskii
2005-06-18 15:51 ` Daniel Jacobowitz
2005-06-18 22:48 ` Nick Roberts
2005-06-18 15:57 ` Daniel Jacobowitz
2005-06-18 22:48 ` Nick Roberts
2005-06-18 23:20 ` Daniel Jacobowitz
2005-06-19 3:39 ` Nick Roberts
2005-06-19 14:56 ` Daniel Jacobowitz
2005-06-19 18:33 ` Eli Zaretskii
2005-06-19 22:31 ` Nick Roberts
2005-06-20 3:41 ` Eli Zaretskii
2005-06-19 22:31 ` Nick Roberts
2005-06-20 0:01 ` Daniel Jacobowitz
2005-06-20 1:24 ` Nick Roberts
2005-06-20 1:31 ` Daniel Jacobowitz
2005-06-20 3:43 ` Eli Zaretskii
2005-06-20 5:03 ` Nick Roberts
2005-06-20 13:51 ` Daniel Jacobowitz
2005-06-20 21:48 ` [PATCH] MI error messages Nick Roberts
2005-06-20 22:10 ` Andreas Schwab
2005-06-21 3:40 ` Eli Zaretskii
2005-06-21 8:50 ` Andreas Schwab
2005-06-21 9:40 ` Nick Roberts
2005-06-21 19:51 ` Eli Zaretskii
2005-06-21 21:43 ` Nick Roberts
2005-06-21 21:59 ` Jason Molenda
2005-06-22 3:32 ` Daniel Jacobowitz
2005-06-22 3:41 ` Jason Molenda
2005-06-22 3:46 ` Daniel Jacobowitz
2005-06-22 7:27 ` Nick Roberts
2005-06-23 3:48 ` Daniel Jacobowitz
2005-06-22 13:04 ` Bob Rossi
2005-06-21 22:01 ` Bob Rossi
2005-06-22 11:06 ` Nick Roberts [this message]
2005-06-22 11:24 ` Andreas Schwab
2005-06-22 19:19 ` Jason Molenda
2005-06-22 21:55 ` Nick Roberts
2005-06-19 21:55 ` [PATCH] -stack-info-frames Jason Molenda
2005-06-19 22:12 ` Daniel Jacobowitz
2005-06-17 23:11 ` Jason Molenda
2005-06-17 23:31 ` 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=17081.18071.112390.809523@farnswood.snap.net.nz \
--to=nickrob@snap.net.nz \
--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