BugBuster Debugging Module
by David Spencer

Running this application opens up a directory viewer containing a program called BusterD, and a module called BugBuster. The program creates the module BugBuster. To load the module, double-click on BugBuster. You could slao include a line in your boot sequence, like 'RMLoad adfs::HardDisc4.!System.Modules.BugBuster', so the module is loaded whenever you switch on.

The BugBuster module provides two separate functions to help remedy the problem of program crashes. Firstly, it prevents programs running in the ARM's user mode (i.e most applications) from writing to memory locations in the range 0 to &8000, which can cause the program to crash. With BugBuster installed any attempt to write to memory in the range 0 to &8000 will cause an explanatory error message as to the cause of the problem.

The second function of BugBuster is to provide a 'get out' mechanism for programs that are trapped in an infinite loop. Such loops can occur directly as a result of coding errors, particularly with Wimp programs as the Escape key is disabled whilst they are running. However, a much more subtle looping occurs when a window's redraw code generates an error. The Wimp faithfully reports this error by putting up a box that probably covers the window that was being redrawn. When the user clicks on 'OK' the Wimp removes the error box and tries to redraw the window again. Assuming the error condition is still present, another error will occur and the whole machine is stuck in an infuriating loop.

BugBuster allows you to get out of either of these loop states by holding down the three keys Ctrl-Alt-Copy. The offending application will be killed with an error, but you will be able to recover control of the system, including any other applications that are also running. Note, you should not use this key combination when not in an infinite loop, as a random task will tyen be killed off.

 RISC User 1992
