[Lldb-commits] [PATCH] D147820: debugserver: move AArch64 watchpoint traps within a watchpointed region, parse ESR flags and send them to lldb

David Spickett via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 11 03:44:41 PDT 2023


DavidSpickett added a comment.

> This patch takes the trap address (FAR register) and finds the nearest watchpoint if it is not contained in any watched region.

>From what I remember, the Linux kernel also does this.



================
Comment at: lldb/test/API/commands/watchpoints/unaligned-watchpoint/TestUnalignedWatchpoint.py:5
+associating the fault with the set watchpoint.
+"""
+
----------------
Can you add here why "correctly associating" is not as easy as it sounds.

"This requires lldb to handle...".


================
Comment at: lldb/test/API/commands/watchpoints/unaligned-watchpoint/main.c:8-11
+   printf("%lld %lld\n", (*u64_p)++, (*u64_p)++);
+   printf("%lld %lld\n", (*u64_p)++, (*u64_p)++);
+   printf("%lld %lld\n", (*u64_p)++, (*u64_p)++);
+   printf("%lld %lld\n", (*u64_p)++, (*u64_p)++);
----------------
These do what exactly?


================
Comment at: lldb/tools/debugserver/source/MacOSX/MachProcess.mm:1425
 
+// return 1 if bit "BIT" is set in "value"
+static uint32_t bit(uint32_t value, uint32_t bit) {
----------------
`"bit"`


================
Comment at: lldb/tools/debugserver/source/RNBRemote.cpp:2888
+      // set most of these fields yet.  It may need to be debugged in the
+      // future, so include all of these purely for debugging by human reasons.
+      ostrm << "watch_addr:" << std::hex
----------------
"by humans"?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D147820/new/

https://reviews.llvm.org/D147820



More information about the lldb-commits mailing list