The Toolbar. The Toolbar runs along the top of the window, and the buttons and controls on the toolbar control the debugging process.

Running and Stepping. The Running and Stepping operations are controlled by the toolbar buttons at the top of the panel. Here is a detailed description of each operation:

Run Button. Pressing the Run button causes the debugger to execute the code at full speed until a breakpoint is encountered, the Stop button is pressed or the program terminates.

Step Over Button. Pressing the Step Over button causes the debugger to step forward one line of code, staying at the same subroutine level. If the Execution Point is on a subroutine call, the subroutine is executed at full speed, and the execution point will stop on the next line of code at the original level. If you hold down the button, the action will auto-repeat. This makes it easy to rapidly step through large blocks of code.

Step Into Button. Pressing the Step Into button causes the debugger to step forward one line of code and into any subroutines that are called. In other words, if the Execution Point is on a subroutine call, the program enters the subroutine and stops on the first line in the subroutine. If you hold down the button, the action will auto-repeat. This makes it easy to rapidly step through large blocks of code.

Reset Button. Pressing the Reset button causes the debugger to reset the program to the starting condition with the program counter at the beginning of the program. This lets you restart the program after you have stepped through part of the code.

Stop Button. Pressing the Stop Button will cause the program to immediately stop execution started by the Run button or the Step Over command.

Show Execution Point Button. Pressing this button will scroll the Source Pane to the Execution Point so the highlight is visible. This is useful when you've been looking through the code and have scrolled away from the Execution Point.

Refresh Button. The display may not update while you are single-stepping. Pressing this button unconditionally forces the display to be updated. Normally the screen will only update at the end of certain operations. This is to reduce screen flicker. Also, if screen refresh has been disabled using the EnableRefresh intrinsic, the screen won't refresh until it has been re-enabled. The Refresh button overrides all these conditions and displays all the recent changes to the screen.

Search Button. Pressing this button brings up a standard search dialog box that enables you to search through the source code for certain strings.

Open Button. Pressing this button lets you open a file in a new source editor.

Save Watches/Breakpoints. Pressing this button lets you save all the current Watches and Breakpoints. This is useful when you have a large number of watches and breakpoints. It saves you the hassle of trying enter or set a large number of watches and breakpoints between sessions..

Debugger Options. Pressing this button takes you to the Debugger Options dialog, which allows to configure various debugging options.

Load Watches/Breakpoints. Pressing this button lets you load previously saved Watches and Breakpoints as described above.

Program State. This item displays the state of the current program. The possible states are: Stopped, Running and Finished. The Stopped state means the program has been stopped by a breakpoint or is being single-stepped. "Running" means the program is running and must be stopped to perform debugging tasks. "Finished" means the program has executed all the code and has finished all operations. To restart a finished program, press the Reset button described above.

Help Button. Pressing this button brings up help information on the Debugger.

Status Bar. The status bar displays information about the Source Code and the debugging process. Here is a detailed description of each item:

PC. The PC value shows the I2L Program Counter value of the current Execution Point. The value is in Hexadecimal. This value can be useful for very low-level debugging at the I2L level. For example, you can use the Disassembler and I2L Code Dump to see which I2L instructions are being executed.

Op. The Op value shows the I2L opcode associated with the current Execution Point. The value is in Hexadecimal. This value can be useful for very low-level debugging at the I2L level. For example, you can use the Disassembler and I2L Code Dump to see which I2L instructions are being executed.

Line. The Line value shows the text line number of the current cursor position.