I identified one bug. Since 2003, reset() accepts an extra argument, =
but fails to set (misuse?) the global unwind_protect_to_save.upto_frame =
with an argument.
Symptoms: debugger abort command aborts to top-level when within an =
unwind-protect somewhere on the stack. E.g. ffi:with-foreign-xyz use =
A naive cure would be to set that field, but I'm currently wondering =
whether a more solid cure would be better, also fixing the other bug
":q debugger command does not reset program stack"
That would involve defining a longjmp() target at the top of the STACK. =
:q would jump there, using the existing unwind_upto() mechanism and =
never merely call driver() itself. The extra arg to reset() introduced =
2003 would become superfluous.
Currently, this argument allows to unwind a variable number REPLoops, =
but is unused. Current code either unwinds 1 (:a/abort) or all of them =