diff options
Diffstat (limited to 'gdb/maint.h')
-rw-r--r-- | gdb/maint.h | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/gdb/maint.h b/gdb/maint.h index 5529d8a..6930018 100644 --- a/gdb/maint.h +++ b/gdb/maint.h @@ -1,5 +1,5 @@ /* Support for GDB maintenance commands. - Copyright (C) 2013-2024 Free Software Foundation, Inc. + Copyright (C) 2013-2025 Free Software Foundation, Inc. This file is part of GDB. @@ -22,6 +22,9 @@ #include "gdbsupport/run-time-clock.h" #include <chrono> +struct obj_section; +struct objfile; + extern void set_per_command_time (int); extern void set_per_command_space (int); @@ -58,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. */ @@ -67,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); |