by Richard Russell, February 2007
When running a program from the Interactive Development Environment you can enter (or exit) paused mode using the menu selection Run… Pause, clicking the Pause button on the toolbar or pressing the F8 key (if the IDE window has the input focus).
It is also possible to enter and exit paused mode automatically using statements within your own BASIC program. To enter paused mode execute the following code:
TRACE STEP ON
As soon as this statement is executed the program will pause and can be single-stepped in the usual way (via a menu selection, the Step button in the toolbar or pressing F7). You will normally want to select the Trace and/or List Variables utility to display useful information while stepping.
To exit paused mode and resume normal execution use the following code:
TRACE STEP OFF
You may wish to write your own PROCpause and PROCunpause procedures which execute these statements conditionally depending on some detected state. For example to pause only when the program is running under the IDE you can do:
DEF PROCpause LOCAL cmd% SYS "GetCommandLine" TO cmd% IF INSTR($$cmd%, "bbcwin.exe") TRACE STEP ON ENDPROC
If you have a particularly difficult bug to trace you could arrange to pause your program only when a specific condition is met, such as a variable having a certain value or a particular key being pressed.