Learn about debugging applications in C, C++, mixed languages with Python, and more. Whether you are debugging multithreaded applications, debugging remotely, or searching for a debugging tool, we have a resource for you.
Narrow your search by jumping to a section or start with a debugging overview.
- Debugging Overview
- Remote Debugging
- Debugging Mixed Language Applications
- Debugging C/C++
- Debugging Python
- HPC Debugging
Debugging is the process of identifying and removing errors from an application. While debugging can be done manually, it is time-consuming and difficult. This is where tools such as TotalView can help.
TotalView provides powerful functionality to make debugging as easy as possible. You can correct bugs, memory issues, and crashes in your high-scale, parallel and multicore C, C++, and Fortran applications.
Wondering where to start with debugging? Begin with these basics:
When working with highly-complex applications, teams must utilize multiple debugging techniques. But finding effective, congruent, and easily-integrable debugging techniques for complex applications can be easier said than done. Watch our webinar to discover five debugging techniques for complex applications.
Another tactic to improve the speed and accuracy of debugging is to work backwards. Reverse debugging allows developers to go “backwards” to find a bug or watch how the program works. See why reverse debugging is much needed in parallel applications.
When looking for a debugging tool, choose one with remote debugging capabilities. Remote debugging is incredibly useful for a variety of reasons. Perhaps your application is in Docker containers, or you wish to debug code that does not reside in your local machine. Or, if you are like many developers working from home during the COVID-19 pandemic, you may be debugging remotely from your home office.
Start here to learn more: Guide to Remote Debugging and Development. Then watch our webinar: Advanced Techniques for Debugging Hybrid MPI/OpenMP Applications Remotely.
TotalView users looking for assistance can watch the following tutorials:
Debugging Mixed-Language Applications
Mixed-language applications are written in two or more languages. TotalView supports debugging Python applications that use C/C++ extensions. This allows you to easily set up your debug session, examine the data exchange between language barriers, and debug the C/C++ code. See how TotalView supports debugging Python and C/C++ Mixed-Language Applications.
To learn more about mixed language applications, download our white paper Understand and Debug Mixed-Language Applications.
Application development in C remains strong despite the advent of other languages such as Java and Python, predominantly due to its performance, flexibility, and its use for memory management.
Python is one of the most widely used programming languages. It can be used to call other high-level languages such as C, C++, and Fortran in order to provide access to high-performance routines without having to rewrite existing code.
Explore the following resources to help with your Python mixed-language application:
Debugging HPC Applications
Parallel programming is common in high performance computing (HPC). HPC often involves multithreaded applications. Multithreading is a model of program execution that allows for multiple threads to be created within a process, executing independently but concurrently sharing process resources.
And while HPC can add challenges to all stages of development, debugging can prove to be especially challenging. Debugging high performance cluster computing programs, for example, can mean adopting entirely different debugging approaches to accommodate the scale and complexity of the environment.
Explore resources on high performance computing:
- Using OpenMP Debugging Interface (OMPD) With TotalView
- CUDA Debugging Support For Apps Using NVIDIA GPUS on ARM64
- How to Improve Print Statement Debugging
CUDA architectures are frequently used alongside MPI parallelism and host-side multicore and multi-thread parallelism.
Download our white paper on debugging CUDA-accelerated parallel applications to learn:
- Challenges of CUDA and heterogeneous acceleration architectures.
- How to successfully harness the power of GPUs.
- How to view all three levels of parallelism within a single debugging session.
Get Started With TotalView
TotalView is a powerful debugging solution that meets the unique and demanding requirements of HPC developers. See and resolve issues in C, C++, Fortran, and mixed-language C/C++ and Python code. Perform reverse debugging and memory debugging, including leak detection. Leverage breakpoints, barrier points, and more to successfully debug your applications.