gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / gdb / maint.h
index 52c3bd93f0bb68e5e160e5e74db8a12137058157..d8475044da31e5b02ff8331117a5de9dcec3520b 100644 (file)
@@ -1,5 +1,5 @@
 /* Support for GDB maintenance commands.
-   Copyright (C) 2013-2014 Free Software Foundation, Inc.
+   Copyright (C) 2013-2020 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #ifndef MAINT_H
 #define MAINT_H
 
+#include "gdbsupport/run-time-clock.h"
+#include <chrono>
+
 extern void set_per_command_time (int);
 
 extern void set_per_command_space (int);
 
-/* Note: There's no set_per_command_symtab on purpose.
-   Symtab stats aren't yet as useful for --statistics output.  */
+/* Records a run time and space usage to be used as a base for
+   reporting elapsed time or change in space.  */
+
+class scoped_command_stats
+{
+ public:
+
+  explicit scoped_command_stats (bool msg_type);
+  ~scoped_command_stats ();
+
+ private:
+
+  DISABLE_COPY_AND_ASSIGN (scoped_command_stats);
+
+  /* Print the time, along with a string.  */
+  void print_time (const char *msg);
 
-extern struct cleanup *make_command_stats_cleanup (int);
+  /* Zero if the saved time is from the beginning of GDB execution.
+     One if from the beginning of an individual command execution.  */
+  bool m_msg_type;
+  /* Track whether the stat was enabled at the start of the command
+     so that we can avoid printing anything if it gets turned on by
+     the current command.  */
+  int m_time_enabled : 1;
+  int m_space_enabled : 1;
+  int m_symtab_enabled : 1;
+  run_time_clock::time_point m_start_cpu_time;
+  std::chrono::steady_clock::time_point m_start_wall_time;
+  long m_start_space;
+  /* Total number of symtabs (over all objfiles).  */
+  int m_start_nr_symtabs;
+  /* A count of the compunits.  */
+  int m_start_nr_compunit_symtabs;
+  /* Total number of blocks.  */
+  int m_start_nr_blocks;
+};
 
 #endif /* MAINT_H */
This page took 0.024248 seconds and 4 git commands to generate.