On 8/6/2018 16:25, glen herrmannsfeldt wrote:
Bernd wrote:
We also had a self-written batch debugger, which relied completely on
S0C1 and SPIE to do its instrumentation and implement the breakpoints;
at least in the first version.
Reminds me of a debugger I used with Orvyl/370 in S/370 days.
I believe it used SVC 255 for breakpoints, which was fine.
The when you continue from the breakpoint, it has to somehow execute
the instruction at the breakpoint before continuing. I had put a breakpoint
on a BR 0 instruction, which was common in the object code from PL/I (F).
The debugger branched to the address in register 0.
Fortunately, I knew who to contact to fix the bug. No-one had
ever tried that before.
Really? How did it manage to do that?
BR 0 is a significant instruction: it does some weird synchronization
thing. That likely doesn't matter much for a debugger, but to actually
branch to the address contained in R0 requires something perverse.
sas