X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fmaint.h;h=d8475044da31e5b02ff8331117a5de9dcec3520b;hb=975f8708de015fb2b813edbf8b714f4777c57a41;hp=51d53b02eb379a7e46ce3466fa7bd0709b8d6629;hpb=bd712aed2f88ab824d403c55a212c2be3f41a335;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/maint.h b/gdb/maint.h index 51d53b02eb..d8475044da 100644 --- a/gdb/maint.h +++ b/gdb/maint.h @@ -1,5 +1,5 @@ /* Support for GDB maintenance commands. - Copyright (C) 2013 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -19,13 +19,48 @@ #ifndef MAINT_H #define MAINT_H +#include "gdbsupport/run-time-clock.h" +#include + 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 */