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

Jason Molenda via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 11 13:45:15 PDT 2023


jasonmolenda added inline comments.


================
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)++);
----------------
DavidSpickett wrote:
> These do what exactly?
These are doing 64-bit writes to `u64_p` which is pointing to the start of the `uint8_t buf[8]`, while I'm watching 1 byte in the middle, so the FAR address I get is the start of the buffer (and outside of the address range I'm watching).  This is the one that lldb currently skips over silently on AArch64 Linux/FreeBSD.  Doing two of these writes on each source line was something I did while testing something else, I didn't really need to write it this way for this test case.


================
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
----------------
DavidSpickett wrote:
> "by humans"?
"by jason", really. ;)  I was mostly trying to aid Future Jason who looks at this five years from now and wonders why the heck debugserver is sending all of these fields to lldb where none of them are used.


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