* maint.c (maintenance_set_cmdlist, maintenance_show_cmdlist): New
authorAndrew Cagney <cagney@redhat.com>
Tue, 25 Sep 2001 02:31:51 +0000 (02:31 +0000)
committerAndrew Cagney <cagney@redhat.com>
Tue, 25 Sep 2001 02:31:51 +0000 (02:31 +0000)
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.

gdb/ChangeLog
gdb/maint.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/maint.exp

index 2642687b3eb5536732af66308bd8a7df2b4303f6..61815449883cc194a784f299a56b8bee61e38bba 100644 (file)
@@ -1,3 +1,12 @@
+2001-09-24  Andrew Cagney  <ac131313@redhat.com>
+
+       * 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  <ac131313@redhat.com>
 
        * findvar.c (read_var_value): For LOC_INDIRECT and LOC_REF_ARG
index cd694ce721ed845806f335be53f16c1463ee9ff0..31f97fc4f309f1615902a1bb5ac28bdd0dd7d30a 100644 (file)
@@ -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
 }
index 404e51a1c8787ff5861f91cc4cdd25ba475c71c8..d873eced681f73a9fbbeba81169119d17456e920 100644 (file)
@@ -1,3 +1,8 @@
+2001-09-22  Andrew Cagney  <ac131313@redhat.com>
+
+       * gdb.base/maint.exp: Add "maintenance set/show" to list of valid
+       responses from "help maint".
+
 2001-09-19  Frank Ch. Eigler  <fche@redhat.com>
 
        * lib/insight-support.exp (_gdbtk_xvfb_init): Set DISPLAY
index 55f6104698b06d03593c4436b9fbf65bc82aa926..ecccb226bc63bea4b1afa9863f67d55137aaa1fe 100644 (file)
@@ -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" }