TotalView can execute code fragments at specified locations with a special type of action point called an evalpoint. TotalView evaluates these code fragments in the context of the target program, which means that you can refer to program variables and branch to places in your program.
Use evalpoints to:
*Include instructions that stop a process and its relatives. If the code fragment can make a decision whether to stop execution, it is called a conditional breakpoint, see Creating Conditional Breakpoints.
*Test potential fixes or patches for your program; see Patching Programs.
*Include a goto in C or Fortran that transfers control to a line number in your program. This lets you test program patches.
*Execute a TotalView function. These functions can stop execution and create barriers and countdown breakpoints. For more information on these statements, see Using Built-in Variables and Statements.
*Set the values of your program’s variables.
You can set an evalpoint at any source line that generates executable code. Valid source lines have a bold line number. When TotalView encounters an evalpoint, it executes the code in the evalpoint before the code on that line.
NOTE: If you call a function from an evalpoint and a breakpoint is within that function, TotalView stops execution at that breakpoint. Similarly, if an evalpoint is in the function, TotalView also evaluates that evalpoint.
Evalpoints modify only the processes being debugged—they do not modify your source program or create a permanent patch in the executable. If you save a program’s action points, however, TotalView reapplies the evalpoint whenever you start a debugging session for that program.
Some examples of conditional breakpoints
Saving Action Points
Using built-in TotalView statements to control execution
Writing code for an expression