[Lldb-commits] [lldb] 9878bac - Revert "[lldb] Still echo the command if we print the error." (#172110)
via lldb-commits
lldb-commits at lists.llvm.org
Fri Dec 12 15:53:27 PST 2025
Author: Jonas Devlieghere
Date: 2025-12-12T23:53:22Z
New Revision: 9878bac3a83b29e2970f2ce1b985e1afa78896d0
URL: https://github.com/llvm/llvm-project/commit/9878bac3a83b29e2970f2ce1b985e1afa78896d0
DIFF: https://github.com/llvm/llvm-project/commit/9878bac3a83b29e2970f2ce1b985e1afa78896d0.diff
LOG: Revert "[lldb] Still echo the command if we print the error." (#172110)
Reverts llvm/llvm-project#171931 because the test is failing on Windows.
Added:
Modified:
lldb/source/Interpreter/CommandInterpreter.cpp
Removed:
lldb/test/Shell/Settings/Inputs/FailedCommand.in
lldb/test/Shell/Settings/TestEchoFailedCommands.test
################################################################################
diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp
index 9ccf22801d667..0198ddcfa31e0 100644
--- a/lldb/source/Interpreter/CommandInterpreter.cpp
+++ b/lldb/source/Interpreter/CommandInterpreter.cpp
@@ -3371,15 +3371,14 @@ void CommandInterpreter::IOHandlerInputComplete(IOHandler &io_handler,
if (line.empty())
return;
}
- bool echoed_command = false;
if (!is_interactive) {
// When using a non-interactive file handle (like when sourcing commands
// from a file) we need to echo the command out so we don't just see the
// command output and no command...
if (EchoCommandNonInteractive(line, io_handler.GetFlags())) {
- io_handler.GetOutputStreamFileSP()->Lock()
- << io_handler.GetPrompt() << line << '\n';
- echoed_command = true;
+ LockedStreamFile locked_stream =
+ io_handler.GetOutputStreamFileSP()->Lock();
+ locked_stream.Printf("%s%s\n", io_handler.GetPrompt(), line.c_str());
}
}
@@ -3399,21 +3398,10 @@ void CommandInterpreter::IOHandlerInputComplete(IOHandler &io_handler,
lldb_private::CommandReturnObject result(m_debugger.GetUseColor());
HandleCommand(line.c_str(), eLazyBoolCalculate, result);
- const bool print_result =
- result.Succeeded() &&
- io_handler.GetFlags().Test(eHandleCommandFlagPrintResult);
- const bool print_error =
- io_handler.GetFlags().Test(eHandleCommandFlagPrintErrors);
-
- // Now emit the command output text from the command we just executed.
- if (print_result || print_error) {
- // If the command failed and we didn't echo it, echo it now so the user
- // knows which command produced the error.
- if (!echoed_command && !result.Succeeded() && print_error) {
- io_handler.GetOutputStreamFileSP()->Lock()
- << io_handler.GetPrompt() << line << '\n';
- }
-
+ // Now emit the command output text from the command we just executed
+ if ((result.Succeeded() &&
+ io_handler.GetFlags().Test(eHandleCommandFlagPrintResult)) ||
+ io_handler.GetFlags().Test(eHandleCommandFlagPrintErrors)) {
auto DefaultPrintCallback = [&](const CommandReturnObject &result) {
// Display any inline diagnostics first.
const bool inline_diagnostics = !result.GetImmediateErrorStream() &&
diff --git a/lldb/test/Shell/Settings/Inputs/FailedCommand.in b/lldb/test/Shell/Settings/Inputs/FailedCommand.in
deleted file mode 100644
index c3bc5c704fe34..0000000000000
--- a/lldb/test/Shell/Settings/Inputs/FailedCommand.in
+++ /dev/null
@@ -1,4 +0,0 @@
-# This should succeed and not be echoed.
-expr 1+2
-# This should fail and be echoed.
-bogus_command
diff --git a/lldb/test/Shell/Settings/TestEchoFailedCommands.test b/lldb/test/Shell/Settings/TestEchoFailedCommands.test
deleted file mode 100644
index 3bb465707a41d..0000000000000
--- a/lldb/test/Shell/Settings/TestEchoFailedCommands.test
+++ /dev/null
@@ -1,10 +0,0 @@
-# Test that failed commands are echoed even when echoing is disabled.
-# This ensures users can see which command produced an error.
-
-RUN: mkdir -p %t.home
-RUN: cp %S/Inputs/FailedCommand.in %t.home/.lldbinit
-RUN: env HOME=%t.home %lldb-init -b 2>&1 | FileCheck %s
-
-CHECK-NOT: expr 1+2
-CHECK: (lldb) bogus_command
-CHECK: error: 'bogus_command' is not a valid command
More information about the lldb-commits
mailing list