Using Action Points
Action points tell the CLI to stop a program’s execution. You can specify the following types of action points:
A
breakpoint (see
dbreak in the
TotalView Reference Guide) stops the process when the program reaches a location in the source code.
A
watchpoint (see
dwatch in the
TotalView Reference Guide) stops the process when the value of a variable is changed.
A
barrier point (see
dbarrier in the
TotalView Reference Guide), 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 only set a barrier point on processes; you can’t set then on individual threads.)
An
eval point (see
dbreak in the
TotalView Reference Guide)
lets you programmatically evaluate the state of the process or variable when execution reaches a location in the source code. An eval point typically does not stop the process; instead, it performs an action. In most cases, an eval point stops the process when some condition that you specify is met.
For extensive information on action points, see
“Setting Action Points”.
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.