Author: David Spickett
Date: 2025-04-25T18:04:08+01:00
New Revision: 332e1817667827c242422e91c4de1b27fb573a0b

URL: 
https://github.com/llvm/llvm-project/commit/332e1817667827c242422e91c4de1b27fb573a0b
DIFF: 
https://github.com/llvm/llvm-project/commit/332e1817667827c242422e91c4de1b27fb573a0b.diff

LOG: [lldb] Fix error that lead Windows to think it could reverse execute 
(#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.

Added: 
    

Modified: 
    lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
    lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    
lldb/test/API/commands/process/reverse-continue/TestReverseContinueNotSupported.py

Removed: 
    


################################################################################
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

Reply via email to