From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21224 invoked by alias); 22 Jun 2005 11:06:32 -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 21182 invoked by uid 22791); 22 Jun 2005 11:06:17 -0000 Received: from viper.snap.net.nz (HELO viper.snap.net.nz) (202.37.101.8) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Wed, 22 Jun 2005 11:06:17 +0000 Received: from farnswood.snap.net.nz (p121-tnt2.snap.net.nz [202.124.108.121]) by viper.snap.net.nz (Postfix) with ESMTP id D033F54D646; Wed, 22 Jun 2005 23:06:11 +1200 (NZST) Received: by farnswood.snap.net.nz (Postfix, from userid 501) id 8507862A99; Wed, 22 Jun 2005 12:08:08 +0100 (BST) From: Nick Roberts MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17081.18071.112390.809523@farnswood.snap.net.nz> Date: Wed, 22 Jun 2005 11:06:00 -0000 To: Eli Zaretskii , gdb-patches@sources.redhat.com Subject: Re: [PATCH] MI error messages In-Reply-To: <17080.35377.519988.619664@farnswood.snap.net.nz> References: <17075.57612.684597.392526@farnswood.snap.net.nz> <20050618155742.GB3663@nevyn.them.org> <17076.42233.730605.834264@farnswood.snap.net.nz> <20050618232032.GA28368@nevyn.them.org> <17076.59646.873454.551250@farnswood.snap.net.nz> <20050619145612.GA8219@nevyn.them.org> <17077.61587.164352.664225@farnswood.snap.net.nz> <17078.19977.660644.9978@farnswood.snap.net.nz> <20050620135108.GA29453@nevyn.them.org> <17079.14386.484824.134375@farnswood.snap.net.nz> <17079.57494.321274.96102@farnswood.snap.net.nz> <17080.35377.519988.619664@farnswood.snap.net.nz> X-SW-Source: 2005-06/txt/msg00349.txt.bz2 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");