[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