TotalView delivers unbeatable platform, language, and compiler support for C, C++, and mixed-language Python – C/C++ applications.

GET LATEST RELEASE    TRY FOR FREE

LATEST RELEASE

TotalView 2019.3

Cray Debugging Improvements

Building on the TotalView Reverse Connect functionality released in TotalView 2019.3, numerous improvements and bug fixes have been made in this release that make it much easier and more reliable to establish interactive debugging sessions on Cray supercomputers.

ARM and NVIDIA GPU Server Debugging Support

Earlier this year TotalView added initial ARM and NVIDIA GPU support for the NVIDIA Jetson AGX Xavier.  For the 2019.3 release, TotalView has expanded its ARM and NVIDIA GPU support to include the latest ARM/NVIDIA GPU Servers and latest version of the CUDA SDKs.  This addition extends TotalView’s already strong GPU debugging support on Linux x86-64 and IBM PowerLE platforms and brings the same powerful debugging capabilities to the ARM platform.

TotalView Tcl Engine Update

The internal TotalView Tcl engine has been updated to version 8.6.9 the 2019.3 release.  This new version brings numerous new Tcl features over our previous 8.4.7 version.  TotalView’s CLI is built around the Tcl interpreter but there are no changes to the CLI commands or functionality due to this upgrade.

Filtering dlopen Events Improvements to Increase Startup Performance

TotalView monitors shared libraries that are dynamically loaded by target processes. One way to improve start-up performance is to configure TotalView to defer processing shared library load events. Two state variables and their related command line options enable you to defer processing dlopen() events so that breakpoint specifications are reevaluated only when the process stops for some other reason. For the 2019.3 release, the TV::dlopen_recalculate_on_match variable now accepts negated glob matching patterns, which allows deferring dlopen() event processing for library path names that match the glob pattern. Further, the glob pattern matching used in TV::dlopen_recalculate_on_match is now equivalent to Tcl's string match command. See the Tcl documentation for the glob pattern rules used by Tcl's string match. Note that previously, TotalView used non-standard "simplified" glob matching rules, which covered two cases: (1) String search match was used if the pattern ended in "*". For example, the pattern "libfoo*" would match if "libfoo" appeared anywhere in the library path name. The equivalent string match pattern is "*libfoo*". (2) Tail match was used if the pattern did not end in "*". For example, the pattern "libbar.so" would match if the library path name ended in libbar.so". The equivalent string match pattern is "*libbar.so" . For more information on controlling TotalView’s processing of dlopen events see Filtering dlopen Events in Debugging Your Program’s Dynamically Loaded Libraries in Chapter 10 of the TotalView reference guide.

New User Interface Improvements

TotalView’s new user interface, activated by default for new TotalView users or through the Display Preferences panel or using the -newUI command line option, continues to deliver new enhancements to make debugging your applications even easier.  If you have any feedback about the new user interface, requests for new or missing features or any problems please send email to tv-beta[email protected].

Documents View
Documents view

Easily switch between open documents with the new Documents View

During your debugging session you may end up with many files open. Managing all the open tabs can be difficult.  The new Documents view makes it easy to switch between the open documents so you can quickly jump to the source file you need to debug.

Detach from processes in debugging session

The ability to detach from individual or groups of processes has been added to the TotalView’s new UI in the 2019.3 release.  This allows developers to better manage their debugging sessions and focus on only the processes they need to debug.  To use the new functionality select Detach from either the Group or Process menu.

Bug fixes and performance improvements

Numerous bug fixes and performance improvements have been made to the new UI including properly focusing on main for MPI, execve, and Fortran applications.

For more details please refer to the TotalView release notes.

PREVIOUS RELEASES

TotalView 2019.2

TotalView Reverse Connect

The organization of modern HPC systems often makes it difficult to deploy tools such as TotalView. For example, the compute nodes in a cluster may not have access to any X libraries or X forwarding, so launching a GUI on a compute node is not possible.

Using the new Reverse Connect feature, you can easily establish a connection where the TotalView UI is running on a front-end node and debugging a job executing on compute nodes.

The basic process is to embed the tvconnect command in a batch script; when the batch job runs, the tvconnect process connects with the TotalView client to start the debugger server process on the batch node. The TotalView client would typically run on a front-end node, where the application is built and batch jobs are submitted. For more information, see Chapter 18, Reverse Connections, in the TotalView User Guide.

Debugging Through Starter Shell Scripts

Often developers will wrap the startup sequence of their application with a shell script in order to set up the run time environment for the application and then run it. The scripts would often need a special “debug” switch in order to start the application under TotalView. In the 2019.2 release, TotalView has been enhanced to understand when given a shell script as the debug target and will chain through the startup sequence of the shell script, including recursing through multiple startup scripts if needed, to find the resulting target that should be debugged.

Python pybind/pybind11 Debugging Support

TotalView’s mixed-language Python and C++ debugging support now properly identifies pybind/pybind11 callstack intermediate frames and will remove them so that a clean call sequence between Python and C++ is presented.

Pybind Intermediate Frames
Pybind intermediate frames
Cleaned Up Pybind Frames
Cleaned up pybind frames

Automatic Process/Thread Breakpoint Focus Preference Change

In past releases, the “Automatically focus on threads/processes at breakpoint” preference was defaulted to false. This often creates confusion during a debugging session when a thread or process not in focus hits a breakpoint and stops. In this case, the process/thread is not automatically brought into focus. Users have to manually examine the set of processes and threads and change the focus. For the 2019.2 release, we have changed the preference default to true so that any process or thread that hits a breakpoint will be brought into focus in your debugging session. If you prefer the old behavior, simply change the preference in the Action Points tab in the Preferences dialog or add “dset TV::GUI::pop_at_breakpoint false” to your .tvdrc file.

New User Interface Improvements

TotalView’s new user interface, activated through the Display Preferences panel or using the -newUI command line option, continues to deliver new enhancements to make debugging your applications even easier. If you have any feedback about the new user interface, requests for new or missing features or any problems please send email to [email protected]

Local Variable View

In previous releases, the Local Variable tab was part of the Call Stack View and locked in a set position as part of the view. For TotalView 2019.2, the display of local variables has been broken out into its own view. This enables users to move the view to new locations or even undock it completely. In addition, the local variable view functionality has been overhauled and allows structures to be expanded in place.

New Input/Output View

In the TotalView 2019.1 release, the ability to debug applications requiring standard input was added. The default use case is for users to enter the input in the terminal that TotalView as launched in. In the 2019.2 release, we’ve added the ability to enter this input directly in the user interface instead of through the terminal. To activate this workflow, turn on the “Input Output view support” in the RW Labs tab on the Preferences dialog and restart the debugger. A new Input/Output view will be available that allows you to enter input to your running application.

Input/Output View
Activate the new Input/Output View under RW Labs

Change new UI font size

The ability to change the overall font size for the user interface has been added to the TotalView 2019.2 release. To change the font size, bring up the Preferences dialog and select the Display tab. Use the Font Size slider to change the font size to small, medium, large or extra-large. The default font size is medium. The next time you start TotalView the UI will use the specified font size.

Font Size slider on Preferences Display tab
Font Size slider on Preferences Display tab

Bug fixes and performance improvements

Numerous bug fixes and performance improvements have been made to the new UI including properly focusing on main for MPI, execve and Fortran applications.

Improved Support

In addition to the great new features, TotalView continues to move forward in its support of operating systems and compilers including the added support of Fedora 30 and GCC 9 for this release.

For more details please refer to the TotalView release notes.

PREVIOUS RELEASES

TotalView 2019.1

Embedded/Edge Debugging Support for NVIDIA Jetson AGX Xavier

The NVIDIA® Jetson AGX Xavier™ platform offers amazing compute capabilities at the fraction of the size and cost of a workstation making it a perfect fit for a variety of autonomous machine applications. 

With the 2019.1 release, developers can use the full power of TotalView to debug their CUDA-based autonomous machine applications running on the Xavier’s ARM 64-bit CPU and 512-Core Volta GPU architecture including using TotalView’s memory debugging technologies to find memory leaks and other memory problems in your code.

User Interface Options – Dark Theme Now Available

TotalView’s new interface was built from the start to support multiple themes and for the 2019.1 release a dark theme is now available!  To enable the dark theme simply select the Dark icon from the Display tab on the Preferences dialog, click OK, and then restart TotalView. When TotalView restarts the user interface will be transformed into the new dark theme! Read more about why and how to use the new dark-themed user interface in this blog.

Display Settings
Display settings
Dark Theme
Dark theme

Support for Debugging in Python 3

For the 2019.1 release, TotalView’s ability to debug mixed language Python and C/C++ applications has been enhanced to support Python 3.5 and above.  Testing has been done on a variety of OS Python distributions as well as the Enthought Python distribution.  The Anaconda Python distribution is not supported due to the unavailability of debug information with the distribution.

FlexNet Embedded Support on macOS

The macOS platform has been updated to also support FlexNet Embedded style tokens. This enables customers sharing tokens between Linux ARM64, Linux PowerLE and Linux x86-64 to now share them with macOS versions of TotalView too.

Improved User Interface

TotalView’s new user interface, activated through the Display Preferences panel or using the -newUI command line option, continues to deliver new enhancements to make debugging your applications even easier.  If you have any feedback about the new user interface, requests for new or missing features or any problems please send email to [email protected].

  • Debugging standard input (stdin) based applications is now supported.
  • Numerous bug fixes and performance improvements have been made to the new UI including improving the performance of UI updates when stepping applications and displaying large source files with many breakpoints.

Stability Improvements and Platform Updates

For the 2019.1 release, TotalView has added operating system support for SuSE/SLES 15 and the PGI 18.10 compiler. Numerous user-reported bug fixes have also been fixed in this release.

For more details please refer to the TotalView release notes.

Local Variable View
Local variable view