================
@@ -471,152 +471,157 @@ void
NativeProcessWindows::OnDebuggerConnected(lldb::addr_t image_base) {
}
ExceptionResult
-NativeProcessWindows::OnDebugException(bool first_chance,
- const ExceptionRecord &record) {
+NativeProcessWindows::HandleSingleStepException(const ExceptionRecord &record)
{
Log *log = GetLog(WindowsLog::Exception);
- llvm::sys::ScopedLock lock(m_mutex);
+ uint32_t wp_id = LLDB_INVALID_INDEX32;
+#ifndef __aarch64__
+ if (NativeThreadWindows *thread = GetThreadByID(record.GetThreadID())) {
+ NativeRegisterContextWindows ®_ctx = thread->GetRegisterContext();
+ Status error =
+ reg_ctx.GetWatchpointHitIndex(wp_id, record.GetExceptionAddress());
+ if (error.Fail())
+ LLDB_LOG(log,
+ "received error while checking for watchpoint hits, pid = "
+ "{0}, error = {1}",
+ thread->GetID(), error);
+ if (wp_id != LLDB_INVALID_INDEX32) {
+ addr_t wp_addr = reg_ctx.GetWatchpointAddress(wp_id);
+ addr_t wp_hit_addr = reg_ctx.GetWatchpointHitAddress(wp_id);
+ std::string desc =
+ formatv("{0} {1} {2}", wp_addr, wp_id, wp_hit_addr).str();
+ StopThread(record.GetThreadID(), StopReason::eStopReasonWatchpoint,
desc);
+ }
+ }
+#endif
+ if (wp_id == LLDB_INVALID_INDEX32)
----------------
Nerixyz wrote:
These lines were swapped before like this:
```suggestion
if (wp_id == LLDB_INVALID_INDEX32)
#endif
```
https://github.com/llvm/llvm-project/pull/200832
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits