When a breakpoint is triggered, the debugger takes the following actions: 1. Suspends program execution at the breakpoint location. 2. If you specified /AFTER when you set the breakpoint, checks the AFTER count. If the specified number of counts has not been reached, execution resumes and the debugger does not do the remaining steps. 3. Evaluates the expression in a WHEN clause, if you specified one when you set the breakpoint. If the value of the expression is false, execution resumes and the debugger does not do the remaining steps. 4. Reports that execution has reached the breakpoint location by issuing a "break . . . " message, unless you specified /SILENT. 5. Displays the line of source code at which execution is suspended, unless you specified /NOSOURCE or /SILENT when you set the breakpoint or unless you previously entered SET STEP NOSOURCE. 6. Executes the commands in a DO clause, if you specified one when you set the breakpoint. If the DO clause contains a GO command, execution continues and the debugger does not perform the next step. 7. Issues the prompt. You set a breakpoint at a particular location in your program by specifying an address expression with the SET BREAK command. You set a breakpoint on consecutive source lines, classes of instructions, or events by specifying a qualifier with the SET BREAK command. Generally, you must specify either an address expression or a qualifier, but not both. Exceptions are /EVENT and /RETURN. The /LINE qualifier sets a breakpoint on each line of source code. The following qualifiers set breakpoints on classes of instructions. Using these qualifiers with /LINE causes the debugger to trace every instruction of your program as it executes and thus significantly slows down execution: /BRANCH /CALL /INSTRUCTION /RETURN The following qualifiers affect what happens at a routine call: /INTO /OVER /[NO]SHARE /[NO]SYSTEM