[Lldb-commits] [PATCH] D147816: Clarify how watchpoint description in stop packets work, fix AArch64 unintended behavior

Jason Molenda via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Apr 7 17:27:28 PDT 2023


jasonmolenda added a comment.

Thanks Omair!  Yeah we have the same problem on Darwin - AArch64 doesn't require that the address we get on a watchpoint trap in the FAR register point within the address range we are watching.  I never fixed this on Darwin so I know the failure mode - lldb says "there was a watchpoint hit, but I couldn't possibly figure out which watchpoint it is, I will stop execution now" and the user has to figure out that they need to manually disable the watchpoint, instruction step, and re-insert the watchpoint.  I'm sure you were looking at the same issue and fixed it by using the MIPS silently-skip codepath in 2016 by accident.  I misunderstood what those three fields in the `description` were doing for a few days before I finally figured it out myself, I'm not at all surprised other people misunderstood it too.

It looks like some future AArch64 cpus may give us a watchpoint number in the ESR, instead of an address that was accessed, that will be a nice improvement over having heuristics to figure out which watchpoint was likely tripped.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D147816



More information about the lldb-commits mailing list