There were some bugs that needed to be fixed in watchpoint handling code on arm64.
Watchpoints were being written to all watchpoint registers and cache was not being maintained correctly.
This patch fixes up all these issues. Watchpoints now work on arm64 except that there is race condition which is not allowing lldb to step out of a watchpoint hit before we can continue again so inferior gets stuck at that point. Manually disabling the watchpoint then issuing a step and then enabling the watchpoint again fixes shows that watchpoints are being installed and removed correctly.
You use this pattern several times in this class. It would be nice if you can move it out to a separate function to avoid code duplication.