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

Reply via email to