You can create a pending eval point at a location in your code that hasn’t yet been loaded, for instance, when your program will dynamically load libraries at runtime. Setting a pending eval point is, essentially, allowing its expression to fail compilation when it is created. For example, it may reference a local variable in the code that will not be defined in the symbol table until the code is loaded and TotalView reads the debug symbols. When your program loads new code at an eval point location, TotalView will attempt to compile the expression. If the eval point expression still fails to compile, the eval point is handled like a breakpoint.
To create a pending eval point, click “Create a pending EVAL point” on the Action Points Properties dialog.
Figure 109 – Action Point Properties > Create Eval Point
• The underlying breakpoint is pending. In this case, TotalView is unlikely to be able to compile the expression (since the breakpoint is not yet instantiated), so it creates a pending eval point.
• A pending eval point has been explicitly created. Explicitly creating a pending eval point is useful when an eval point is intended to be set in dynamically loaded code (such as CUDA GPU code), and so the breakpoint slides to the host code before runtime.
Note that the "Create a pending EVAL point" flag sticks to the eval point for the duration of the debug session. The flag is not saved with the eval point when TotalView saves action points; however, when restoring the action points, TotalView will set the flag if the underlying breakpoint needed to slide or was pending.