Chapter 5 Setting and Managing Action Points (Breakpoints)
Introducing Action Points
NextGen TotalView for HPC employs the concept of action points, which specify an action to perform when a thread or process reaches a source line or machine instruction in your program.
TotalView supports four types of action points:
• A breakpoint stops execution of processes and threads that reach it. Other threads in the process also stop, and you can also indicate that you want other related processes to stop. Breakpoints are the simplest kind of action point.
• An evalpoint executes a code fragment when it is reached.
• A watchpoint monitors a location in memory and stops execution when it changes. A watchpoint can stop all the threads in a group or a process, or can include an expression to evaluate.
• A barrier point synchronizes a set of threads or processes at a location.
Action Point Properties
• You can independently enable or disable action points. A disabled action point isn’t deleted; however, when your program reaches a disabled action point, TotalView ignores it.
• You can share action points across multiple processes or set them in individual processes.
• Action points apply to all the threads in a process. In a multi-process program, the action point's width, or scope, applies by default to all threads in all processes in a share group, i.e. those processes that share the same executable. You can narrow the width to stop just a single thread that executed to the breakpoint, or, conversely, broaden it to apply to all threads in all processes in the control group, which contains all share groups.
• TotalView assigns unique ID numbers to each action point. These IDs display in the Action Points view.
Each type of action point is identified with a distinctive icon, as displayed in
Table 3.
Table 3: Action Point Types and Identifying Icons
Action Points Icons | Type of Action Point | How to Use |
| Breakpoint | |
| Evalpoint | |
| Watchpoint | |
| Barrier point | |
NOTE >> Conditional watchpoints can be created only in the CLI for this release.