[Lldb-commits] [lldb] [lldb][Windows] Clear stale thread stop info on resume (PR #201595)

Charles Zablit via lldb-commits lldb-commits at lists.llvm.org
Thu Jun 4 07:12:09 PDT 2026


https://github.com/charles-zablit created https://github.com/llvm/llvm-project/pull/201595

Currently, a thread that didn't participate in the next stop carries its old reason across a continue.

This patch mirrors the `NativeThreadLinux::Resume` implementation by resetting `m_stop` and clearing `m_stop_description`.

When running the test suite with `LLDB_USE_LLDB_SERVER=1`, this fixes:
- `TestThreadSpecificBreakpoint.py`
- `TestIgnoreSuspendedThread.py`
- `TestDAP_threads.py`

>From b974300cb10b830cd33829ef29fa8a500adc9077 Mon Sep 17 00:00:00 2001
From: Charles Zablit <c_zablit at apple.com>
Date: Thu, 4 Jun 2026 15:01:34 +0100
Subject: [PATCH] [lldb][Windows] Clear stale thread stop info on resume

---
 .../Plugins/Process/Windows/Common/NativeThreadWindows.cpp   | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lldb/source/Plugins/Process/Windows/Common/NativeThreadWindows.cpp b/lldb/source/Plugins/Process/Windows/Common/NativeThreadWindows.cpp
index da0fe0d891d6f..f021d435efa9b 100644
--- a/lldb/source/Plugins/Process/Windows/Common/NativeThreadWindows.cpp
+++ b/lldb/source/Plugins/Process/Windows/Common/NativeThreadWindows.cpp
@@ -81,6 +81,11 @@ Status NativeThreadWindows::DoResume(lldb::StateType resume_state) {
   }
 
   if (resume_state == eStateStepping || resume_state == eStateRunning) {
+    // Clear any stop info left over from a previous stop.
+    m_stop_info = ThreadStopInfo();
+    m_stop_info.reason = lldb::eStopReasonNone;
+    m_stop_description.clear();
+
     DWORD previous_suspend_count = 0;
     HANDLE thread_handle = m_host_thread.GetNativeThread().GetSystemHandle();
     do {



More information about the lldb-commits mailing list