There are a couple of ways to use LisaBug to terminate an infinite loop if
your
program is in one:
When you find your program in an infinite loop:
1. Press the NMI key (minus key on the keypad) to enter the debugger.
2. If the domain is greater than zero--i.e., 1, 2 or 3--type a "G"o, then
RETURN. This brings you back to your program then drops you back into
Lisabug.
If the domain is zero or n, Type "UBR" RETURN. If that didn't change the
domain to 1, 2 or 3, type "ID PC-4" RETURN, "G" RETURN, then depress the
NMI key before proceding. (It's sometimes hard to get a non-zero domain
if the program is caught up in I/O.)
3. Type: "PC o" RETURN.
4. Then type "G" RETURN.
There is another situation that you may get into with procedures such as:
Procedure QUIT;
begin
exit(PROGRAM_NAME)
end;
You must include a reference to QUIT in the main program, or the Dead Code
Analysis removes QUIT from the object code. To terminate the program, invoke
Lisabug with the numeric keypad minus key (NMI), then enter the following
immediate commands:
br
ix movem.l d0-a6,-(a7)
quit
You are returned to the Workshop shell when the program terminates.
Additional information on terminating loops may be found in the debugger
section of your Workshop manual,