Fix the part of stepping over watchpoints that lldb can fix #6911
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There are two bugs with stepping over watchpoint hits in lldb. One is an lldb bug - the ThreadPlanStepOverWatchpoint needs to be registered as a "Controlling Plan" or it won't trigger a public stop when it completes. The other is a kernel issue where if an instruction single step triggers the wp, we only get the single step completion exception, not the watchpoint hit.
But since wp triggering instructions are seldom branch instructions, and lldb runs from branch to branch using breakpoints, with this fix you will only miss the watchpoint hit if you are unlucky enough for the faulting instruction to be the first one in the source line, or the first one in the next source line.
So it's worth having this fix even if we haven't gotten the kernel fix yet.