Multithreaded debugging

Debugging multithreaded applications creates a number of new development challenges. For instance, developers need to implement parallelization strategies and overcome new performance challenges - such as concurrency, synchronization, and memory bandwidth - all while maintaining program correctness and optimization. It would take a super-human developer to manage all of these new tasks alone.

Even though free command line debuggers and troubleshooting methods such as printf may be helpful in some situations, as you move to developing more complex and multithreaded applications, their capabilities are quickly exhausted. Here are the capabilities TotalView offers relative to basic debuggers. 

Product image: Shows a group of threads running with the pointer highlighting a specific line of code where it is stopped

Shows a group of threads running with the pointer highlighting a specific line of code where it is stopped - click to enlarge

 
Capabilities Advanced debugger Basic debuggers
Breakpoints and source display
Command line interface
Tightly integrated GUI
Memory debugging
Reverse debugging
Full control over all the threads in the process
Debugging two or more processes at once
Graphical display of array data
Debugging C++ code with heavy template use
Easy to navigate complex data structures

Powerful software development tools are essential in helping even the best developer diagnose and fix errors encountered during the development of new multithreaded applications or the transition of existing applications to run on multicore systems. These tools help developers ensure that applications are error-free and running as fast as possible while also taking advantage of the new performance capabilities offered by multicore hardware.

 
“Using TotalView, we have been able to quickly add complex features like multithreading; that would have been difficult without such a tool. We noticed a dramatic drop in our development cycle. What used to take us more than two weeks to develop and fully test, now takes less than one week.”
Kirill Minkovich, Ph.D.,
HRL
Research Staff Member
 

Do you have the right tool to debug multithreaded applications? Transitioning to multicore and many-core systems creates increasingly difficult challenges for developers that can be both subtle and far-reaching. An advanced debugger can help you transition applications correctly and quickly – as efficiently as possible. Download this white paper, "Transitioning to Multicore," to learn more about how to transition an application to run on a multicore system smoothly and correctly.

Want to know more? Request a customized demonstration of TotalView to understand how troubleshooting your development challenges can be affected based on the type of debugger you use.

Learn more about our capabilities.