diff options
Diffstat (limited to 'gdb/maint.h')
-rw-r--r-- | gdb/maint.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gdb/maint.h b/gdb/maint.h index 0ddc62b..6930018 100644 --- a/gdb/maint.h +++ b/gdb/maint.h @@ -61,7 +61,9 @@ class scoped_command_stats bool m_symtab_enabled : 1; run_time_clock::time_point m_start_cpu_time; std::chrono::steady_clock::time_point m_start_wall_time; +#ifdef HAVE_USEFUL_SBRK long m_start_space; +#endif /* Total number of symtabs (over all objfiles). */ int m_start_nr_symtabs; /* A count of the compunits. */ @@ -70,6 +72,37 @@ class scoped_command_stats int m_start_nr_blocks; }; +/* If true, display time usage both at startup and for each command. */ + +extern bool per_command_time; + +/* RAII structure used to measure the time spent by the current thread in a + given scope. */ + +struct scoped_time_it +{ + /* WHAT is the prefix to show when the summary line is printed. */ + scoped_time_it (const char *what, bool enabled = per_command_time); + + DISABLE_COPY_AND_ASSIGN (scoped_time_it); + ~scoped_time_it (); + +private: + bool m_enabled; + + /* Summary line prefix. */ + const char *m_what; + + /* User time at the start of execution. */ + user_cpu_time_clock::time_point m_start_user; + + /* System time at the start of execution. */ + system_cpu_time_clock::time_point m_start_sys; + + /* Wall-clock time at the start of execution. */ + std::chrono::steady_clock::time_point m_start_wall; +}; + extern obj_section *maint_obj_section_from_bfd_section (bfd *abfd, asection *asection, objfile *ofile); |