Using Action Points
Action points tell the CLI to stop a program’s execution. You can specify the following types of action points:
![*](p4-bullet.jpg)
A
breakpoint (see
dbreak) stops the process when the program reaches a location in the source code.
![*](p4-bullet.jpg)
A
watchpoint (see
dwatch) stops the process when the value of a variable is changed.
![*](p4-bullet.jpg)
A
barrierpoint (see
dbarrier), as its name suggests, effectively prevents processes from proceeding beyond a point until all other related processes arrive. This gives you a method for synchronizing the activities of processes. (You can set a barrierpoint only on processes; you cannot set then on individual threads.)
![*](p4-bullet.jpg)
An
evalpoint (see
dbreak) lets you programmatically evaluate the state of the process or variable when execution reaches a location in the source code. An evalpoint typically does not stop the process; instead, it performs an action. In most cases, an evalpoint stops the process when some condition that you specify is met.
Each action point is associated with an action point identifier. You use these identifiers when you need to refer to the action point. Like process and thread identifiers, action point identifiers are assigned numbers as they are created. The ID of the first action point created is 1, the second ID is 2, and so on. These numbers are never reused during a debugging session.
The CLI and the GUI let you assign only one action point to a source code line, but you can make this action point as complex as you need it to be.