From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 319 invoked by alias); 2 May 2005 04:38:37 -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 32586 invoked from network); 2 May 2005 04:38:17 -0000 Received: from unknown (HELO viper.snap.net.nz) (202.37.101.8) by sourceware.org with SMTP; 2 May 2005 04:38:17 -0000 Received: from farnswood.snap.net.nz (p133-tnt1.snap.net.nz [202.124.110.133]) by viper.snap.net.nz (Postfix) with ESMTP id 5142D4B05FA; Mon, 2 May 2005 16:38:14 +1200 (NZST) Received: by farnswood.snap.net.nz (Postfix, from userid 501) id F083262A99; Mon, 2 May 2005 05:38:11 +0100 (BST) From: Nick Roberts MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17013.44722.822297.104008@farnswood.snap.net.nz> Date: Mon, 02 May 2005 04:38:00 -0000 To: Daniel Jacobowitz Cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH: gdb/mi] gdb-mi.el In-Reply-To: <20050501150224.GA970@nevyn.them.org> References: <16933.30246.584286.198915@farnswood.snap.net.nz> <16955.41571.706228.362525@farnswood.snap.net.nz> <20050430195303.GC6713@nevyn.them.org> <17012.36714.197045.790859@farnswood.snap.net.nz> <20050501150224.GA970@nevyn.them.org> X-SW-Source: 2005-05/txt/msg00038.txt.bz2 > > > Could you please include a ChangeLog entry for the pdate? > > > > 2005-05-01 Nick Roberts > > > > * mi/gdb-mi.el: Update for changes in Emacs 22.0.50. > > Use "-var-update --with-values" for faster re-display of > > watch expressions. > > > > Please note that I have submitted a patch for "-var-update --with-values" > > which is also waiting approval. > > The last message in the thread was comments from Bob. Are you going to > respond to them, or would you rather I review it first? I have just replied to him. > Does this patch require that one? Yes. Since it's in several posts and I've followed some of Bob's suggestions, I am attaching all the up-to-date source code patches for that change. Thanks Nick 2005-05-02 Nick Roberts * 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 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. *** /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/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-05-02 15:48:51.000000000 +1200 *************** *** 30,38 **** #include #include "gdb_string.h" extern int varobjdebug; /* defined in varobj.c */ ! static int varobj_update_one (struct varobj *var); /* VAROBJ operations */ --- 30,44 ---- #include #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, ! enum print_values print_values); /* VAROBJ operations */ *************** *** 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; --- 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], novalues) == 0) ! print_values = PRINT_NO_VALUES; ! else if (strcmp (argv[0], "1") == 0 ! || strcmp (argv[0], withvalues) == 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 */ --- 438,467 ---- 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], novalues) == 0) ! print_values = PRINT_NO_VALUES; ! else if (strcmp (argv[0], "1") == 0 ! || strcmp (argv[0], withvalues) == 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 */ *************** *** 450,456 **** cr = rootlist; while (*cr != NULL) { ! varobj_update_one (*cr); cr++; } xfree (rootlist); --- 481,487 ---- cr = rootlist; while (*cr != NULL) { ! varobj_update_one (*cr, print_values); cr++; } xfree (rootlist); *************** *** 467,473 **** cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, "changelist"); else cleanup = make_cleanup_ui_out_list_begin_end (uiout, "changelist"); ! varobj_update_one (var); do_cleanups (cleanup); } return MI_CMD_DONE; --- 498,504 ---- cleanup = make_cleanup_ui_out_tuple_begin_end (uiout, "changelist"); else cleanup = make_cleanup_ui_out_list_begin_end (uiout, "changelist"); ! varobj_update_one (var, print_values); do_cleanups (cleanup); } return MI_CMD_DONE; *************** *** 478,484 **** scope), and 1 if it succeeds. */ static int ! varobj_update_one (struct varobj *var) { struct varobj **changelist; struct varobj **cc; --- 509,515 ---- scope), and 1 if it succeeds. */ static int ! varobj_update_one (struct varobj *var, enum print_values print_values) { struct varobj **changelist; struct varobj **cc; *************** *** 524,529 **** --- 555,562 ---- 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-05-02 16:01:43.000000000 +1200 *************** *** 142,157 **** frame = get_selected_frame (NULL); 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 if (strcmp (argv[0], "2") == 0 ! || 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; } --- 142,158 ---- frame = get_selected_frame (NULL); if (strcmp (argv[0], "0") == 0 ! || strcmp (argv[0], novalues) == 0) print_values = PRINT_NO_VALUES; else if (strcmp (argv[0], "1") == 0 ! || strcmp (argv[0], allvalues) == 0) print_values = PRINT_ALL_VALUES; else if (strcmp (argv[0], "2") == 0 ! || strcmp (argv[0], simplevalues) == 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; }