Improved Debugging in C and C++ Applications For HPC
November 14, 2017

Improved Debugging in C and C++ Applications For HPC

When talking with C, C++, and Fortran developers, the trend continues toward using more complex C code, more threads, and multiple languages within one application. With the latest release TotalView:

  • Improves its dynamic analysis and capabilities for debugging in C/C++, Fortran and Python, with strong support for complex, multithreaded code.
  • Expands and improve its abilities as a leading HPC debugger.

Let’s look at the new features and improvements, and see how they’ll help your development group quickly diagnose and fix problems in complex code.

Better Debugging of Optimized Applications With Debug Information

As applications grow in size and complexity, developers are finding that building unoptimized applications and trying to debug them later is too slow. Optimized applications with debug information execution is the way to go. Building applications this way creates optimized code paths for the debugger to follow and quickly locate optimized variables.

TotalView brings further improvements for debugging optimized code, including better handling of inline functions and locating variables.

More Efficient Control of Program Execution

TotalView evaluation points provide developers the ability to dynamically execute a small snippet of code at a location in code during the program's execution. The code snippet can perform logic to determine if execution should be halted, print a value of a variable, or test a code patch for broken application logic without rebuilding the application.

When debugging remote processes, such as in an MPI application, TotalView has typically executed all evaluation points on the “front-end” portion of the debugger. With this release, TotalView compiles almost all the evaluation point snippets for execution on the remote debugger server. This improves debugging performance by allowing the snippets to be executed in parallel across the debugger servers. It reduces network communication between the front-end debugger and remote debuggers. For the developer, this means faster debugging!

Better Mixed Language Debugging With Python and C/C++

TotalView supports debugging of mixed-language applications with Python and C/C++. This feature is a huge time saver for understanding the call sequences between the languages and examining data passed between the language barriers.

With optimized code and inline debugging improvements, TotalView can now debug the Python executable directly on the system without having to prepare a special debug build of the interpreter.

Learn more about the Python debugging feature>>

Utilize Leak Detection and Reverse Debugging Within Your CI Process

Continuous integration (CI) is the process of frequently integrating development changes into the existing code repository, which triggers a build and test of the new changes. CI enables development teams to avoid major integration and merge headaches. Quality builds become routine.

In this release, we provide several how-to articles, scripts, and examples to help you integrate two TotalView’s powerful features into your CI process: Leak Detection and Reverse Debugging. These are available in the examples/CIExamples of the product installation directory. You’ll be solving test failures within your CI process in no time.

And There’s More!

  1. Support for CUDA 9, macOS High Sierra, Fedora 26, and GCC 7.1.
  2. Improvements to the search algorithm for finding files and functions in your program.

It's recommended customers update their software to the latest version.

Not a customer yet? Contact us to receive an evaluation version.

Try Free