Pausing+under+program+control

//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:

code format="bb4w" TRACE STEP ON code 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:

code format="bb4w" TRACE STEP OFF code 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:

code format="bb4w" DEF PROCpause LOCAL cmd% SYS "GetCommandLine" TO cmd% IF INSTR($$cmd%, "bbcwin.exe") TRACE STEP ON     ENDPROC code 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.