diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2024-07-27 23:34:35 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2024-10-23 18:26:01 +0000 |
commit | 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583 (patch) | |
tree | 6cf5ab1f05330c6773b1f3f64799d56a9c7a1faa /contrib/llvm-project/lldb/source/Commands/CommandObjectStats.cpp | |
parent | 6b9f7133aba44189d9625c352bc2c2a59baf18ef (diff) | |
parent | ac9a064cb179f3425b310fa2847f8764ac970a4d (diff) |
Diffstat (limited to 'contrib/llvm-project/lldb/source/Commands/CommandObjectStats.cpp')
-rw-r--r-- | contrib/llvm-project/lldb/source/Commands/CommandObjectStats.cpp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/contrib/llvm-project/lldb/source/Commands/CommandObjectStats.cpp b/contrib/llvm-project/lldb/source/Commands/CommandObjectStats.cpp index 262de0bda144..53855e7d0316 100644 --- a/contrib/llvm-project/lldb/source/Commands/CommandObjectStats.cpp +++ b/contrib/llvm-project/lldb/source/Commands/CommandObjectStats.cpp @@ -11,6 +11,7 @@ #include "lldb/Host/OptionParser.h" #include "lldb/Interpreter/CommandOptionArgumentTable.h" #include "lldb/Interpreter/CommandReturnObject.h" +#include "lldb/Interpreter/OptionArgParser.h" #include "lldb/Target/Target.h" using namespace lldb; @@ -75,6 +76,33 @@ class CommandObjectStatsDump : public CommandObjectParsed { case 'a': m_all_targets = true; break; + case 's': + m_stats_options.SetSummaryOnly(true); + break; + case 'f': + m_stats_options.SetLoadAllDebugInfo(true); + break; + case 'r': + if (llvm::Expected<bool> bool_or_error = + OptionArgParser::ToBoolean("--targets", option_arg)) + m_stats_options.SetIncludeTargets(*bool_or_error); + else + error = bool_or_error.takeError(); + break; + case 'm': + if (llvm::Expected<bool> bool_or_error = + OptionArgParser::ToBoolean("--modules", option_arg)) + m_stats_options.SetIncludeModules(*bool_or_error); + else + error = bool_or_error.takeError(); + break; + case 't': + if (llvm::Expected<bool> bool_or_error = + OptionArgParser::ToBoolean("--transcript", option_arg)) + m_stats_options.SetIncludeTranscript(*bool_or_error); + else + error = bool_or_error.takeError(); + break; default: llvm_unreachable("Unimplemented option"); } @@ -83,13 +111,17 @@ class CommandObjectStatsDump : public CommandObjectParsed { void OptionParsingStarting(ExecutionContext *execution_context) override { m_all_targets = false; + m_stats_options = StatisticsOptions(); } llvm::ArrayRef<OptionDefinition> GetDefinitions() override { return llvm::ArrayRef(g_statistics_dump_options); } + const StatisticsOptions &GetStatisticsOptions() { return m_stats_options; } + bool m_all_targets = false; + StatisticsOptions m_stats_options = StatisticsOptions(); }; public: @@ -109,7 +141,8 @@ protected: target = m_exe_ctx.GetTargetPtr(); result.AppendMessageWithFormatv( - "{0:2}", DebuggerStats::ReportStatistics(GetDebugger(), target)); + "{0:2}", DebuggerStats::ReportStatistics( + GetDebugger(), target, m_options.GetStatisticsOptions())); result.SetStatus(eReturnStatusSuccessFinishResult); } |