aboutsummaryrefslogtreecommitdiff
path: root/gdb/maint.c
diff options
context:
space:
mode:
authorStan Shebs <shebs@codesourcery.com>1994-11-23 03:27:40 +0000
committerStan Shebs <shebs@codesourcery.com>1994-11-23 03:27:40 +0000
commit43ab4ba582a495a5c0f13c1e0869b6a241442611 (patch)
treef6776668f994d9e1377da311573902addf35b19a /gdb/maint.c
parentaa30c7ee221fb88e6106951b00d47cd3ef36e75c (diff)
downloadgdb-43ab4ba582a495a5c0f13c1e0869b6a241442611.zip
gdb-43ab4ba582a495a5c0f13c1e0869b6a241442611.tar.gz
gdb-43ab4ba582a495a5c0f13c1e0869b6a241442611.tar.bz2
Maintenance commands to report time and space usage.
* main.c (display_time, display_space): New globals. (main): Add argument --statistics to enable reporting, display time and space after startup is done. * maint.c (maintenance_time_display, maintenance_space_display): New commands. * top.c (command_loop): Display time and space after command execution. * top.c (pre_init_ui_hook): New global. (gdb_init): If pre_init_ui_hook set, call before all other init.
Diffstat (limited to 'gdb/maint.c')
-rw-r--r--gdb/maint.c53
1 files changed, 46 insertions, 7 deletions
diff --git a/gdb/maint.c b/gdb/maint.c
index ce39506..479ee6b 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -1,5 +1,5 @@
/* Support for GDB maintenance commands.
- Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
+ Copyright 1992, 1993, 1994 Free Software Foundation, Inc.
Written by Fred Fish at Cygnus Support.
This file is part of GDB.
@@ -33,14 +33,15 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "expression.h" /* For language.h */
#include "language.h"
-static void
-maintenance_command PARAMS ((char *, int));
+static void maintenance_command PARAMS ((char *, int));
-static void
-maintenance_dump_me PARAMS ((char *, int));
+static void maintenance_dump_me PARAMS ((char *, int));
-static void
-maintenance_demangle PARAMS ((char *, int));
+static void maintenance_demangle PARAMS ((char *, int));
+
+static void maintenance_time_display PARAMS ((char *, int));
+
+static void maintenance_space_display PARAMS ((char *, int));
/*
@@ -113,6 +114,32 @@ maintenance_demangle (args, from_tty)
}
}
+static void
+maintenance_time_display (args, from_tty)
+ char *args;
+ int from_tty;
+{
+ extern int display_time;
+
+ if (args == NULL || *args == '\0')
+ printf_unfiltered ("\"maintenance time\" takes a numeric argument.\n");
+ else
+ display_time = strtol (args, NULL, 10);
+}
+
+static void
+maintenance_space_display (args, from_tty)
+ char *args;
+ int from_tty;
+{
+ extern int display_space;
+
+ if (args == NULL || *args == '\0')
+ printf_unfiltered ("\"maintenance space\" takes a numeric argument.\n");
+ else
+ display_space = strtol (args, NULL, 10);
+}
+
/* The "maintenance info" command is defined as a prefix, with allow_unknown 0.
Therefore, its own definition is called only for "maintenance info" with
no args. */
@@ -260,6 +287,18 @@ Call internal GDB demangler routine to demangle a C++ link name\n\
and prints the result.",
&maintenancelist);
+ add_cmd ("time", class_maintenance, maintenance_time_display,
+ "Set the display of time usage.\n\
+If nonzero, will cause the execution time for each command to be\n\
+displayed, following the command's output.",
+ &maintenancelist);
+
+ add_cmd ("space", class_maintenance, maintenance_space_display,
+ "Set the display of space usage.\n\
+If nonzero, will cause the execution space for each command to be\n\
+displayed, following the command's output.",
+ &maintenancelist);
+
add_cmd ("type", class_maintenance, maintenance_print_type,
"Print a type chain for a given symbol.\n\
For each node in a type chain, print the raw data for each member of\n\