From: Andrew Cagney Date: Tue, 25 Sep 2001 02:31:51 +0000 (+0000) Subject: * maint.c (maintenance_set_cmdlist, maintenance_show_cmdlist): New X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4f3379724d512db262eee1a6a8dc8938f11ee4a1;p=binutils-gdb.git * maint.c (maintenance_set_cmdlist, maintenance_show_cmdlist): New variables. (maintenance_set_profile_cmd): New function. (maintenance_show_cmd, maintenance_set_cmd): New functions. (_initialize_maint_cmds): Add "maintenance set" and "maintenance show" and, commented out, "maintenance set/show profile" commands. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2642687b3eb..61815449883 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2001-09-24 Andrew Cagney + + * maint.c (maintenance_set_cmdlist, maintenance_show_cmdlist): New + variables. + (maintenance_set_profile_cmd): New function. + (maintenance_show_cmd, maintenance_set_cmd): New functions. + (_initialize_maint_cmds): Add "maintenance set" and "maintenance + show" and, commented out, "maintenance set/show profile" commands. + 2001-09-24 Andrew Cagney * findvar.c (read_var_value): For LOC_INDIRECT and LOC_REF_ARG diff --git a/gdb/maint.c b/gdb/maint.c index cd694ce721e..31f97fc4f30 100644 --- a/gdb/maint.c +++ b/gdb/maint.c @@ -471,10 +471,42 @@ maintenance_do_deprecate (char *text, int deprecate) } } +/* Maintenance set/show framework. */ + +static struct cmd_list_element *maintenance_set_cmdlist; +static struct cmd_list_element *maintenance_show_cmdlist; + +static void +maintenance_set_cmd (char *args, int from_tty) +{ + printf_unfiltered ("\"maintenance set\" must be followed by the name of a set command.\n"); + help_list (maintenance_set_cmdlist, "maintenance set ", -1, gdb_stdout); +} + +static void +maintenance_show_cmd (char *args, int from_tty) +{ + cmd_show_list (maintenance_show_cmdlist, from_tty, ""); +} + +#ifdef NOTYET +/* Profiling support. */ + +static int maintenance_profile_p; + +static void +maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element *c) +{ + maintenance_profile_p = 0; + warning ("\"maintenance set profile\" command not supported.\n"); +} +#endif void _initialize_maint_cmds (void) { + struct cmd_list_element *tmpcmd; + add_prefix_cmd ("maintenance", class_maintenance, maintenance_command, "Commands for use by GDB maintainers.\n\ Includes commands to dump specific internal GDB structures in\n\ @@ -500,6 +532,20 @@ to test internal functions such as the C++ demangler, etc.", &maintenanceprintlist, "maintenance print ", 0, &maintenancelist); + add_prefix_cmd ("set", class_maintenance, maintenance_set_cmd, "\ +Set GDB internal variables used by the GDB maintainer.\n\ +Configure variables internal to GDB that aid in GDB's maintenance", + &maintenance_set_cmdlist, "maintenance set ", + 0/*allow-unknown*/, + &maintenancelist); + + add_prefix_cmd ("show", class_maintenance, maintenance_show_cmd, "\ +Show GDB internal variables used by the GDB maintainer.\n\ +Configure variables internal to GDB that aid in GDB's maintenance", + &maintenance_show_cmdlist, "maintenance show ", + 0/*allow-unknown*/, + &maintenancelist); + #ifndef _WIN32 add_cmd ("dump-me", class_maintenance, maintenance_dump_me, "Get fatal error; make debugger dump its core.\n\ @@ -596,4 +642,19 @@ When non-zero, this timeout is used instead of waiting forever for a target to\n finish a low-level step or continue operation. If the specified amount of time\n\ passes without a response from the target, an error occurs.", &setlist), &showlist); + + +#ifdef NOTYET + /* FIXME: cagney/2001-09-24: A patch introducing a + add_set_boolean_cmd() is pending, the below should probably use + it. A patch implementing profiling is pending, this just sets up + the framework. */ + tmpcmd = add_set_cmd ("profile", class_maintenance, + var_boolean, &maintenance_profile_p, + "Set internal profiling.\n\ +When enabled GDB is profiled.", + &maintenance_set_cmdlist); + tmpcmd->function.sfunc = maintenance_set_profile_cmd; + add_show_from_set (tmpcmd, &maintenance_show_cmdlist); +#endif } diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 404e51a1c87..d873eced681 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2001-09-22 Andrew Cagney + + * gdb.base/maint.exp: Add "maintenance set/show" to list of valid + responses from "help maint". + 2001-09-19 Frank Ch. Eigler * lib/insight-support.exp (_gdbtk_xvfb_init): Set DISPLAY diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp index 55f6104698b..ecccb226bc6 100644 --- a/gdb/testsuite/gdb.base/maint.exp +++ b/gdb/testsuite/gdb.base/maint.exp @@ -26,6 +26,8 @@ #maintenance check-symtabs -- Check consistency of psymtabs and symtabs #maintenance space -- Set the display of space usage +#maintenance set -- Set GDB internal variables used by the GDB maintainer +#maintenance show -- Show GDB internal variables used by the GDB maintainer #maintenance time -- Set the display of time usage #maintenance demangle -- Demangle a C++ mangled name #maintenance dump-me -- Get fatal error; make debugger dump its core @@ -443,7 +445,7 @@ set timeout $oldtimeout send_gdb "help maint\n" gdb_expect { - -re "Commands for use by GDB maintainers\\..*Includes commands to dump specific internal GDB structures in.*a human readable form, to cause GDB to deliberately dump core,.*to test internal functions such as the C.. demangler, etc\\..*List of maintenance subcommands:.*maintenance check-symtabs.*maintenance demangle.*(maintenance dump-me.*)?maintenance info.*maintenance internal-error.*maintenance print.*maintenance space.*maintenance time.*Type.*help maintenance.*followed by maintenance subcommand name for full documentation\\..*Command name abbreviations are allowed if unambiguous\\..*$gdb_prompt $"\ + -re "Commands for use by GDB maintainers\\..*Includes commands to dump specific internal GDB structures in.*a human readable form, to cause GDB to deliberately dump core,.*to test internal functions such as the C.. demangler, etc\\..*List of maintenance subcommands:.*maintenance check-symtabs.*maintenance demangle.*(maintenance dump-me.*)?maintenance info.*maintenance internal-error.*maintenance print.*maintenance set.*maintenance show.*maintenance space.*maintenance time.*Type.*help maintenance.*followed by maintenance subcommand name for full documentation\\..*Command name abbreviations are allowed if unambiguous\\..*$gdb_prompt $"\ { pass "help maint" } -re ".*$gdb_prompt $" { fail "help maint" } timeout { fail "(timeout) help maint" }