In This Book

The debugger executes in an arbitrary order the action lists that are eligible for execution at the same time. If two or more such action lists have an unrestricted go command (a go command with no arguments), the debugger executes all action lists up to the ￿rst unrestricted go command it encounters, executes that go command, and then issues a warning that it discarded other go commands. This behavior prevents you from inadvertently losing control of the program when two action lists execute concurrently.

Action List Execution Following an Interactive step Command

If program execution stops following an interactive step command and the debugger executes one or more action lists, the debugger ignores all requests to execute the program from those action lists and issues a warning. This behavior prevents the program from continuing to execute while you are trying to step through it.

5

Placing step and go Commands in Action Lists

The debugger executes all step and go commands in the order they appear in the action list, except unrestricted go commands as described in \Execution of Multiple Action Lists". You can place step or go commands anywhere in an action list. However, it is usually best to them at the end, as in the following example:

breakpoint 45 -do [some command; another command; go]

Otherwise, you may ￿nd that execution of the action list generates unanticipated results. The commands following a go or a step command migh t execute at program locations you do not anticipate.

In addition, commands may execute in an order that you do not expect. This situation can occur when control returns to the debugger from the target program. The debugger executes any new action lists applying to the new location, and then executes an y commands remaining from earlier action lists.

Generally, you can avoid unexpected results b y placing a step or go command only at the end of an action list.

Using Debugger Commands 5-17