As the comment says, we need to pretend to satisfy the caller. For some reason
I also restored the breakpoints here. I cannot for the life of me figure out
why since it should be ok with in all cases.
For swstep=false, the step will stop right away (regardless of any breakpoints)
and thus need to remove breakpoints anyway.
For swstep=true, a breakpoint is created on the next instruction and would stop
too and thus need to remove breakpoints anyway.
So yeah, don't do this. Thanks for the report skuater!