diff options
author | Doug Evans <dje@google.com> | 2013-03-21 17:37:30 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2013-03-21 17:37:30 +0000 |
commit | bd712aed2f88ab824d403c55a212c2be3f41a335 (patch) | |
tree | 490fa4cc174545d0a4962ef985b39c00ffad42e3 /gdb/cli | |
parent | d76488d84eb95326e157d8deca0f626914036667 (diff) | |
download | gdb-bd712aed2f88ab824d403c55a212c2be3f41a335.zip gdb-bd712aed2f88ab824d403c55a212c2be3f41a335.tar.gz gdb-bd712aed2f88ab824d403c55a212c2be3f41a335.tar.bz2 |
New commands "mt set per-command {space,time,symtab} {on,off}".
* NEWS: Add entry.
* event-top.c: #include "maint.h".
* main.c: #include "maint.h".
* maint.c: #include <sys/time.h>, <time.h>, block.h, top.h,
timeval-utils.h, maint.h, cli/cli-setshow.h.
(per_command_time, per_command_space): New static globals.
(per_command_symtab): New static global.
(per_command_setlist, per_command_showlist): New static globals.
(struct cmd_stats): Move here from utils.c.
(set_per_command_time): Renamed from set_display_time in utils.c
and moved here. All callers updated.
(set_per_command_space): Renamed from set_display_space in utils.c
and moved here. All callers updated.
(count_symtabs_and_blocks): New function.
(report_command_stats): Moved here from utils.c. Add support for
printing symtab stats. Only print data if enabled before command
executed.
(make_command_stats_cleanup): Ditto.
(sert_per_command_cmd, show_per_command_cmd): New functions.
(_initialize_maint_cmds): Add new commands
mt set per-command {space,time,symtab} {on,off}.
* maint.h: New file.
* top.c: #include "maint.h".
* utils.c (reset_prompt_for_continue_wait_time): New function.
(get_prompt_for_continue_wait_time): New function.
* utils.h (reset_prompt_for_continue_wait_time): Declare
(get_prompt_for_continue_wait_time): Declare.
(make_command_stats_cleanup): Moved to maint.h.
(set_display_time, set_display_space): Moved to maint.h and renamed
to set_per_command_time, set_per_command_space.
* cli/cli-setshow.c (parse_cli_boolean_value): Renamed from
parse_binary_operation and made non-static. Don't call error,
just return an error marker. All callers updated.
* cli/cli-setshow.h (parse_cli_boolean_value): Declare.
doc/
* gdb.texinfo (Maintenance Commands): Add docs for
"mt set per-command {space,time,symtab} {on,off}".
testsuite/
* gdb.base/maint.exp: Update tests for per-command stats.
Diffstat (limited to 'gdb/cli')
-rw-r--r-- | gdb/cli/cli-setshow.c | 19 | ||||
-rw-r--r-- | gdb/cli/cli-setshow.h | 6 |
2 files changed, 11 insertions, 14 deletions
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c index 3a0e978..95ebbe7 100644 --- a/gdb/cli/cli-setshow.c +++ b/gdb/cli/cli-setshow.c @@ -29,10 +29,6 @@ #include "cli/cli-cmds.h" #include "cli/cli-setshow.h" -/* Prototypes for local functions. */ - -static int parse_binary_operation (char *); - /* Return true if the change of command parameter should be notified. */ static int @@ -76,8 +72,10 @@ parse_auto_binary_operation (const char *arg) return AUTO_BOOLEAN_AUTO; /* Pacify GCC. */ } -static int -parse_binary_operation (char *arg) +/* See cli-setshow.h. */ + +int +parse_cli_boolean_value (char *arg) { int length; @@ -100,10 +98,7 @@ parse_binary_operation (char *arg) || strncmp (arg, "disable", length) == 0) return 0; else - { - error (_("\"on\" or \"off\" expected.")); - return 0; - } + return -1; } void @@ -248,8 +243,10 @@ do_set_command (char *arg, int from_tty, struct cmd_list_element *c) break; case var_boolean: { - int val = parse_binary_operation (arg); + int val = parse_cli_boolean_value (arg); + if (val < 0) + error (_("\"on\" or \"off\" expected.")); if (val != *(int *) c->var) { *(int *) c->var = val; diff --git a/gdb/cli/cli-setshow.h b/gdb/cli/cli-setshow.h index 079b9da..152080b 100644 --- a/gdb/cli/cli-setshow.h +++ b/gdb/cli/cli-setshow.h @@ -19,15 +19,15 @@ struct cmd_list_element; -/* Exported to cli/cli-cmds.c and gdb/top.c */ +/* Parse ARG, an option to a boolean variable. + Returns 1 for true, 0 for false, and -1 if invalid. */ +extern int parse_cli_boolean_value (char *arg); extern void do_set_command (char *arg, int from_tty, struct cmd_list_element *c); extern void do_show_command (char *arg, int from_tty, struct cmd_list_element *c); -/* Exported to cli/cli-cmds.c and gdb/top.c, language.c and valprint.c */ - extern void cmd_show_list (struct cmd_list_element *list, int from_tty, char *prefix); |