rocallahan wrote:

> My notion was that when you push a plan that has an intention to run in a 
> direction, if the plan above it on the stack was going in the opposite 
> direction, it has to be popped.

That's in the current code in this PR but I agree that was the wrong direction. 
My experimental 
[reverse-continue-thread-plan](https://github.com/rocallahan/llvm-project/tree/reverse-continue-thread-plan)
 branch doesn't do this.

> After all, you might be doing a backwards direction next, but hit a 
> breakpoint while doing that. You then want to step FORWARDS from that 
> breakpoint to check something out.

Right.

> Then if stepping backwards and forwards were working like lldb stepping 
> currently works, you'd expect "continue" to return control to the backwards 
> next to finish out the operation.

There's a UX issue here: in the scenario you describe (hit breakpoint during 
reverse-next, step forward, continue) *should* the reverse-step be resumed? 
Personally I think not. I think it's very confusing if "continue" ever causes 
reverse execution (and likewise if "reverse-continue" ever causes forward 
execution). So in this case I would say "reverse-continue" should resume the 
reverse-next but "continue" should pop it.

This is helpful discussion but it doesn't directly address my question in 
https://github.com/llvm/llvm-project/pull/112079#issuecomment-2468857787. Can 
we focus on that?

https://github.com/llvm/llvm-project/pull/112079
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to