New in TotalView® for HPC 2018.2
TotalView® for HPC 2018.2 includes the following primary new or updated features. For a complete change history for TotalView, MemoryScape and ReplayEngine, see the document “TotalView_for_HPC_Change_Log.pdf” in the PDF directory of your installation, or follow the link “TotalView New Features and Change Log” on the TotalView documentation page on the website.
The NextGen TotalView User Interface
With this release, TotalView’s new user interface is now officially supported and is no longer an Early Access feature. For new TotalView users, the new UI is displayed by default. For existing TotalView users, the default UI is still the TotalView Classic UI, but any user can change the default using the Preferences dialog on the Display menu, or launch the new UI with the -newUI switch:
totalview -newUI
For more details on the new UI, see the in-product help through the Help | Contents menu item. New features added to the NextGen user interface in this release include:
Welcome to TotalView’s New UI page
When you start the new UI, a new “Welcome to TotalView’s New UI” page displays resources about the new UI and how to use it.
Set PC
The ability to set the PC to a new line location has been added. To change the PC, select a valid line in the source code, then choose the Thread |Set PC menu item or simply hit the “p” key.
Data View
A number of enhancements have been added to better display changing data and data collections during program execution.
Action Points
Action points now accurately display their state as dynamic code from CUDA kernels or shared libraries are loaded.
Multi-process debugging improvements
Various aspects of the new user interface now use the share group of the process in focus for operations and data displayed. For example, only source files and action points related to the current share group in focus are shown. When changing focus to another process in a different share group, the source view and action point view update to show the related files and action points.
Bug fixes and improvements
Numerous bug fixes and minor improvements have been made to the new UI.
Currently, the next generation UI is supported on Linux x86 64-bit, Linux PowerLE, Linux ARM64, and Apple’s Mac OS X platforms. It supports multi-process and multi-threaded debugging as well as a level of parallel, MPI and CUDA debugging. Functionality not yet present in the UI is available through the command line interface (CLI). Please send email to tv-beta@roguewave.com with your feedback and feature priorities. We welcome all feedback and feature requests for the new user interface.
TotalView “What’s New” Splash Screen
In order to better promote new features in TotalView, a “What’s New” splash screen is displayed after a new version of the product is installed, providing information about, and links to, the latest new features. You can dismiss the splash screen and not show it again until the next new release is installed. To view the What’s New dialog again, select the “What’s New in TotalView” menu item from the Help menu.
CUDA Debugging Model and Unified Display Improvements
With this release, TotalView improves on the ability to easily set action points within CUDA applications and applications that dynamically load shared libraries with dlopen. In either case, until the CUDA or shared library code is loaded, the information required for setting a breakpoint is not available to the debugger. To address this issue, TotalView now allows setting a breakpoint on any line in the Source View, whether or not it can identify executable code for that line. The breakpoint becomes either a pending breakpoint or a sliding breakpoint until the CUDA or shared library code is loaded at runtime.
QString Type Transformation
TotalView now automatically transforms instances of type QString in Qt4 and Qt5 applications so users no longer need to locate and manipulate the underlying character data to a human-friendly format.
Manage Single-Stepper Skip Rules
TotalView now provides the ability to define single-stepper “skip” rules that modify the way source-level single stepping works. These rules identify functions that require no debugging. Skip rules can be defined to skip over a function or through a function.
Skip over rules direct the debugger to step over a function rather than into it. These are useful for skipping over library functions such as C++ STL code.
Skip through rules direct the debugger to ignore any source-line information for the function, so that single stepping does not stop at source lines within the function. If the function being skipped through calls another function, that call is handled according to the original single-stepping operation. Skip through is most useful for callback or thunk functions.