[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