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

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to