https://github.com/DavidSpickett created https://github.com/llvm/llvm-project/pull/137351
The new test added in https://github.com/llvm/llvm-project/pull/132783 was failing on Windows because it created a new error to say it did not support the feature, but then returned the existing, default constructed error. Which was a success value. This also changes the GDBRemote error message to the same phrasing used in all the other places so we don't have to special case any platform. >From 75ec9f551c34a8684b65352f7890a8c16566dccb Mon Sep 17 00:00:00 2001 From: David Spickett <david.spick...@linaro.org> Date: Fri, 25 Apr 2025 15:46:41 +0000 Subject: [PATCH] [lldb] Fix error that lead Windows to think it could reverse execute The new test added in https://github.com/llvm/llvm-project/pull/132783 was failing on Windows because it created a new error to say it did not support the feature, but then returned the existing, default constructed error. Which was a success value. This also changes the GDBRemote error message to the same phrasing used in all the other places so we don't have to special case any platform. --- .../Plugins/Process/Windows/Common/ProcessWindows.cpp | 6 +++--- lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | 2 +- .../reverse-continue/TestReverseContinueNotSupported.py | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp index 9196ac2702c85..331139d029f50 100644 --- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp @@ -239,15 +239,15 @@ ProcessWindows::DoAttachToProcessWithID(lldb::pid_t pid, Status ProcessWindows::DoResume(RunDirection direction) { Log *log = GetLog(WindowsLog::Process); llvm::sys::ScopedLock lock(m_mutex); - Status error; if (direction == RunDirection::eRunReverse) { - error.FromErrorStringWithFormatv( + return Status::FromErrorStringWithFormatv( "error: {0} does not support reverse execution of processes", GetPluginName()); - return error; } + Status error; + StateType private_state = GetPrivateState(); if (private_state == eStateStopped || private_state == eStateCrashed) { LLDB_LOG(log, "process {0} is in state {1}. Resuming...", diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp index b616e99be83b2..f924d1194e8a1 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -1410,7 +1410,7 @@ Status ProcessGDBRemote::DoResume(RunDirection direction) { LLDB_LOGF(log, "ProcessGDBRemote::DoResume: target does not " "support reverse-continue"); return Status::FromErrorString( - "target does not support reverse-continue"); + "target does not support reverse execution of processes"); } if (num_continue_C_tids > 0) { diff --git a/lldb/test/API/commands/process/reverse-continue/TestReverseContinueNotSupported.py b/lldb/test/API/commands/process/reverse-continue/TestReverseContinueNotSupported.py index 54d757dc4b98b..167d5827bff55 100644 --- a/lldb/test/API/commands/process/reverse-continue/TestReverseContinueNotSupported.py +++ b/lldb/test/API/commands/process/reverse-continue/TestReverseContinueNotSupported.py @@ -11,7 +11,6 @@ class TestReverseContinueNotSupported(TestBase): - @skipIfWindows def test_reverse_continue_not_supported(self): target = self.connect() @@ -26,7 +25,9 @@ def test_reverse_continue_not_supported(self): self.expect( "process continue --reverse", error=True, - substrs=["target does not support reverse-continue"], + # This error is "<plugin name> does not support...". The plugin name changes + # between platforms. + substrs=["does not support reverse execution of processes"], ) def test_reverse_continue_forward_and_reverse(self): _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits