Sleuth is an extremely clever and useful BASIC debugging tool which has dual screen and single stepping modes. However, its wide range of commands and facilities mean it’s not easy to 'drive' but once the operating sequence has been learnt one begins to appreciate its value for developing new, or debugging old, programs. This complexity means that a short review cannot do justice to its full potential, however, here goes.
Sleuth is similar to a machine code monitor program and can be entered before or after loading a program. Fewer problems will be experienced if the ROM is entered first. Then a program can be loaded, saved or listed.
The control screen has a very clear display which shows status, current line being executed, current procedure, values of variables in current statement, values of user selected variables and a space at the bottom of the screen, set aside for command entries. Each statement in the current line is highlighted as it is executed and the variables are continuously updated as the program runs.
>
The speed of program execution under Sleuth's control can be varied from one to 100 statements per second and may be frozen at any point, which when combined with dual screen mode enables the user to analyse the effect of each, statement on the screen display.
Conditional and unconditional breakpoints can be set so that the program will stop running on reaching a predefined line number. Similarly,
variable breakpoints can be set so that the program will halt when a chosen value is reached. Conditional breakpoints must not contain a BASIC keyword. For example A 070) = (33*score 070 + B)*3 A 2 is acceptable, but A =SIN(X) is not. All breakpoints may be temporarily disabled and can be displayed on the control screen.
>
Whilst the program is running Sleuth allows the user to halt the execution of the program and change the value of any variable so as to see its effects upon the screen display.
It will allow a program to be run from any line number or can be made to jump a section by a GOTO statement. In addition, a multistep command can be used to avoid the problems of single stepping through long time delays.
The control screen also shows the nesting levels of FOR loops, GOSUBs, REPEATs and PROCs, which can be useful for checking that loops are properly exited.
>
The package includes a comprehensive instruction manual and it pays to read this very carefully before using Sleuth. I wasted an hour trying, unsuccessfully, to enter dual screen mode before finding out that one has to enter this mode before loading a program.