summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2001-09-25 02:31:51 +0000
committerAndrew Cagney <cagney@redhat.com>2001-09-25 02:31:51 +0000
commit82eb27eea6da5cf98c575d68ba23acd22cd3d45d (patch)
treeb3f81ba856884aaad4fba5c0b9952c55a5333b1b
parent48f7d7646ab43b201b9d283da05c71d971e1472a (diff)
downloadgdb-82eb27eea6da5cf98c575d68ba23acd22cd3d45d.tar.gz
* 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.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/maint.c61
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/maint.exp4
4 files changed, 78 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2642687b3eb..61815449883 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
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
convert the pointer into a CORE_ADDRs.
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 <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
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" }