The issue is that
- breakpoint handler issues the breakpoint event and discards step plan (ThreadPlanBase::ShouldStop method)
- breakpoint event handler skips breakpoint (because its condition is false) and resumes the execution
Final fix includes:
- additional check for completed plans while discarding stale plans
- GetStopInfo algorithm rework
- reset StopInfo on breakpoint condition fail
Again, "reach" not "stay on"?