From cbcb3bcee3efc8ea4e72bc36ae5cbaf946804b58 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Mon, 11 Apr 2022 10:42:59 -0700 Subject: [PATCH] [lldb] Don't report progress in the REPL Don't report progress events in the REPL. Most of the progress events are debugger specific which are useful when you're debugging, but not so much when you're waiting for the next line to be executed in the REPL. This patch disables reporting of progress events when in REPL mode. rdar://91502950 Differential revision: https://reviews.llvm.org/D123426 --- lldb/include/lldb/Core/Debugger.h | 2 ++ lldb/source/Core/Debugger.cpp | 6 ++++++ lldb/source/Expression/REPL.cpp | 1 + 3 files changed, 9 insertions(+) diff --git a/lldb/include/lldb/Core/Debugger.h b/lldb/include/lldb/Core/Debugger.h index 6b6ad22d2351..354230b7a88a 100644 --- a/lldb/include/lldb/Core/Debugger.h +++ b/lldb/include/lldb/Core/Debugger.h @@ -301,6 +301,8 @@ public: bool GetShowProgress() const; + bool SetShowProgress(bool show_progress); + llvm::StringRef GetShowProgressAnsiPrefix() const; llvm::StringRef GetShowProgressAnsiSuffix() const; diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp index 37e54a9abefa..a812848c7e8b 100644 --- a/lldb/source/Core/Debugger.cpp +++ b/lldb/source/Core/Debugger.cpp @@ -385,6 +385,12 @@ bool Debugger::GetShowProgress() const { nullptr, idx, g_debugger_properties[idx].default_uint_value != 0); } +bool Debugger::SetShowProgress(bool show_progress) { + const uint32_t idx = ePropertyShowProgress; + return m_collection_sp->SetPropertyAtIndexAsBoolean(nullptr, idx, + show_progress); +} + llvm::StringRef Debugger::GetShowProgressAnsiPrefix() const { const uint32_t idx = ePropertyShowProgressAnsiPrefix; return m_collection_sp->GetPropertyAtIndexAsString(nullptr, idx, ""); diff --git a/lldb/source/Expression/REPL.cpp b/lldb/source/Expression/REPL.cpp index be41c60ebb5f..d7582af9b2ea 100644 --- a/lldb/source/Expression/REPL.cpp +++ b/lldb/source/Expression/REPL.cpp @@ -25,6 +25,7 @@ using namespace lldb_private; REPL::REPL(LLVMCastKind kind, Target &target) : m_target(target), m_kind(kind) { // Make sure all option values have sane defaults Debugger &debugger = m_target.GetDebugger(); + debugger.SetShowProgress(false); auto exe_ctx = debugger.GetCommandInterpreter().GetExecutionContext(); m_format_options.OptionParsingStarting(&exe_ctx); m_varobj_options.OptionParsingStarting(&exe_ctx);