Improved debugging for complex C/C++ and HPC applications

on Nov 14, 17 • by Bill Burns • with No Comments

Let’s look at the new features and improvements in TotalView for HPC and CodeDynamics 2017.3. See how they’ll help your development group quickly diagnose and fix problems in your code. ...

Home » Dynamic analysis » Improved debugging for complex C/C++ and HPC applications

When talking with C, C++, and Fortran developers, we continue to see trends of applications becoming more complex, larger, using more threads and increasing their use of multiple languages within one application.

With the 2017.3 release:

CodeDynamics continues to improve its dynamic analysis and debugging abilities providing very strong features for debugging complex C and C++ multithreaded code.
TotalView continues to expand and improve its abilities as a leading HPC debugger.

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

Better debugging of optimized applications with debug information

As applications continue to grow both in size and complexity, developers are finding that if they built the application unoptimized and with debug information execution, it’s too slow when they try to debug the application. More and more we are seeing customers build applications optimized and with debug information. Building applications this way creates a complex scenario for the debugger as it follows the optimized code paths and locates optimized variables. As with prior releases, TotalView and CodeDynamics 2017.3 continues to bring further improvements for debugging optimized code including better handling of inline functions and locating variables.

More efficient control of program execution with TotalView evaluation points

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 but with the 2017.3 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 and reduces network communication between the front-end debugger and remote debuggers. For the developer, this equates to a faster-debugging experience enabling you to analyze and resolve issues in code faster!

Better mixed language debugging with Python and C/C++

Beginning with TotalView and CodeDynamics 2017.2, and improved in 2017.3 was the support for debugging Python applications to call out to C/C++ Python extensions. This feature is a huge time saver for understanding the call sequences between the languages and examining the data passed between the language barriers. Benefiting from the optimized code and inline debugging improvements, CodeDynamics can now debug the python executable directly on the system without having to prepare a special debug build of the interpreter. Check out The challenge – Debugging Python and C/C++ applications for more information about the Python debugging feature.

Utilize leak detection and reverse debugging within your CI process

Continuous integration (CI), the process of frequently integrating changes from the development into the existing code repository and automatically triggering a build and test of the new changes, has enabled development teams to avoid major integration and merge headaches and resulted in the routine production of a quality build of the product. In this release, we provide several how-to articles, scripts, and examples so you can learn how to integrate leak detection and leverage the power of reverse debugging to quickly solve test failures within your CI process. These are available in the examples/CIExamples of the product installation directory.

And there’s more!

Release 2017.3 brings support for CUDA 9, macOS High Sierra, Fedora 26, and GCC 7.1 to both TotalView and CodeDynamics.

The CodeDynamics’ UI has been improved with added for conditional watchpoints, the ability to modify properties on any action point. You’ll also be able to access this functionally by trying out the new UI in TotalView, simply supply the -newUI switch at startup.

We continue to improve the search algorithm for finding files and functions in you program.

Next steps

Update your system, or contact us for an evaluation copy of TotalView for HPC or CodeDynamics. See how to identify and resolve your runtime issues faster.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top