forked from Imagelibrary/binutils-gdb
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.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user