[Lldb-commits] [lldb] [LLDB][Windows] Fix watchpoints for Windows (PR #95446)

Jason Molenda via lldb-commits lldb-commits at lists.llvm.org
Thu Jun 13 14:50:08 PDT 2024


https://github.com/jasonmolenda updated https://github.com/llvm/llvm-project/pull/95446

>From 0053a9cfdd4637be0d52901b5d871ed1c43e06a1 Mon Sep 17 00:00:00 2001
From: Aleksandr Korepanov <korepanov.sasha at gmail.com>
Date: Thu, 13 Jun 2024 15:56:08 +0200
Subject: [PATCH 1/2] [LLDB][Windows] Fix watchpoints for Windows

The patch fixes not working watchpoints on windows.
---
 lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
index eb0834b1159f6..780147fc607e9 100644
--- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
+++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
@@ -406,7 +406,7 @@ void ProcessWindows::RefreshStateAfterStop() {
                m_session_data->m_debugger->GetProcess().GetProcessId(), pc, id);
 
       stop_info = StopInfo::CreateStopReasonWithWatchpointID(
-          *stop_thread, id, m_watchpoints[id].address);
+          *stop_thread, id);
       stop_thread->SetStopInfo(stop_info);
 
       return;
@@ -857,7 +857,7 @@ Status ProcessWindows::EnableWatchpoint(WatchpointSP wp_sp, bool notify) {
   info.address = wp_sp->GetLoadAddress();
   info.size = wp_sp->GetByteSize();
   info.read = wp_sp->WatchpointRead();
-  info.write = wp_sp->WatchpointWrite();
+  info.write = wp_sp->WatchpointWrite() || wp_sp->WatchpointModify();
 
   for (unsigned i = 0U; i < m_thread_list.GetSize(); i++) {
     Thread *thread = m_thread_list.GetThreadAtIndex(i).get();

>From 19bd5b051b69677682b4923b8cee7054607ff480 Mon Sep 17 00:00:00 2001
From: Aleksandr Korepanov <korepanov.sasha at gmail.com>
Date: Thu, 13 Jun 2024 20:24:24 +0200
Subject: [PATCH 2/2] fixup! [LLDB][Windows] Fix watchpoints for Windows

Style fix
---
 lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
index 780147fc607e9..f383b3d40a4f3 100644
--- a/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
+++ b/lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
@@ -405,8 +405,7 @@ void ProcessWindows::RefreshStateAfterStop() {
                "{1:x} with watchpoint {2}",
                m_session_data->m_debugger->GetProcess().GetProcessId(), pc, id);
 
-      stop_info = StopInfo::CreateStopReasonWithWatchpointID(
-          *stop_thread, id);
+      stop_info = StopInfo::CreateStopReasonWithWatchpointID(*stop_thread, id);
       stop_thread->SetStopInfo(stop_info);
 
       return;



More information about the lldb-commits mailing list