Use this dialog box to toggle an action point. That is, if an action point is not at the location, TotalView creates one. If, however, an action point exists at this location, TotalView disables it.
Figure 62 – Action Point > At Location Dialog Box
After you click OK, TotalView either sets or disables a breakpoint. If you entered a line number and the line does not contain an executable statement, TotalView either sets of disables a breakpoint on the next source line that has executable code.
NOTE >> You can also set action points by clicking on a line number in the Source Pane.
This dialog box has three options:
• Function or Line: Sets or disables a breakpoint at a function or line.
• All Methods in Class: Sets or disables one or more breakpoints on all methods contained within the named class. If you only want to set a breakpoint on some of these methods, first set breakpoints on all methods, then open the Properties dialog box, and then select the Addresses button. You will now be able to unselect the ones not needed.
Although a set of breakpoints was created—and you will see a breakpoint when you display the method—each of the breakpoints has the same breakpoint ID. When you click on the breakpoint in the Action Points tab, TotalView displays a dialog box in which you can indicate which one you want to manipulate or see.
• All Virtual Functions and Overrides: Sets or disables one or more breakpoints on all named virtual functions and their overrides. Generally, handle the set of breakpoints that this command creates the same as those created when you select All Methods in Class.
If you type a function name that TotalView has no information about into the Action Point > At Location dialog box, it assumes that you have either mistyped the function name or that the library containing the function has not yet been loaded into memory. In this circumstance, you can tell it to set it anyway because the breakpoint could exist in a shared library or it could be loaded later. These kind of breakpoints are called pending breakpoints. When libraries are loaded, TotalView checks for the function’s name. If the name is found, it sets the breakpoint. If it isn’t in a newly loaded library, TotalView continues to wait for it to be loaded. You’ll see information in the Action Points tab that tells you that the breakpoint is pending.
If the name you type is similar to the name of an existing function, TotalView displays its Ambiguous Function dialog box that lets you select which of these existing functions it should set a breakpoint on. If, however, the function will be loaded into memory later, you can set a pending breakpoint
If the name you entered was not ambiguous, TotalView just asks if it should set a pending breakpoint.
For more information on writing breakpoint expressions, consult the dbreak CLI command information, particularly the section on “Breakpoint Expressions.”
NOTE >> TotalView can place only one action point on an address. Because the breakpoints you specify are actually expressions, the locations to which these expressions evaluate can overlap or even be the same. Sometimes, and this most often occurs with pending breakpoints in dynamically loaded libraries, TotalView cannot tell when action points overlap. If they do, TotalView only enables one of the action points and disables all others that evaluate to the same address. The action point that TotalView enables is the one with the lowest action point ID.