TotalView Debugger Features
Optional Built-in Memory Debugging
For those who wish to look for leaks, track heap allocations and de-allocations, and get usage information anytime, the TotalView Debugger provides an innovative and easy to use way of identifying heap memory problems. Our Optional built-in Memory Debugger is less intrusive than other memory analysis tools, and you don't have to re-compile your programs. The Memory Debugger's graphical heap browser makes it easy to interpret your heap activity and status. Advanced filtering capabilities let you focus on what you're interested in, letting you see only what you want to see. It's baseline capabilities lets you compare your program's memory state from one point to another. You can even compare what is going on currently with states you previously saved to disk.
(NOTE: The Built-in Memory Debugger is not available with TotalView Individual.)
Test Your Fixes Without Recompiling
Skip the hassle of “rewrite, save, recompile, and run.” TotalView’s evaluation points save you time. Just attach a snippet of code to a source line and TotalView will execute it.
Scalable, Robust, and Reliable
Developed for the world’s most demanding applications, TotalView was designed to handle programs executing on many different supercomputers. In fact, it is installed on 98% of the world's supercomputers. If it can handle these kinds of programs, you don't have to worry about TotalView ever running out of gas.
“TotalView is a critical tool, especially in debugging MPI code.” Raytheon Employee
Multi-Platform and Operating System Support
Easy to learn and use, TotalView's multi-platform support eliminates the hassles and weaknesses of all other debuggers. Debugging on multiple platforms previously meant learning different debuggers and switching back and forth between them. TotalView eliminates this problem because it supports the Linux, UNIX, and Mac OS X operating systems you develop on every day. For a full list of platforms consult our platforms page.
Unrivaled Parallel & Thread Support
TotalView has numerous advanced features tailored to your parallel model of choice (MPI, OpenMP, UPC, GA, threads, and others). For example, our barrier breakpoints help synchronize processes and threads. And our MPI Message Queue Graph visualizes your program's interprocess communication, making communication problems easier to find. You can even tell it to analyze a graph for cycles.
The use of threads has become a necessity for today's mission-critical codes. As a result, many users now face a maze of threads too complicated to follow using other debuggers. But TotalView helps you see through the complexity of your threaded programs and regain full control.
Our proprietary tracer technology easily and automatically acquires threads as your program creates them. TotalView then lets you execute a thread, a group of threads, or all of your threads. In this way, you can analyze individual thread and thread interaction patterns.
Superior C++ Support
The hierarchies, templates, scoping, and nesting inherent in complex C++ code can baffle ordinary debuggers, but TotalView understands. TotalView's advanced C++ debugging features help you find bugs fast. You can call C++ functions from evaluation points and when writing expressions in the Evaluate Window; set breakpoints in one, several, or all instantiations of a template; view STL code and data in readable form through our STLView feature, get proper scope information you can trust, debug overloaded methods, get information on any variable whenever you need it, and much more. With even the most sophisticated C++ code, TotalView just works.
"I like TotalView because I can dive into any variable and see its contents and structure along with the elements of the structure. I can keep diving until I get to the piece I want or I can stay where I am and see the overall picture for that structure."
- David James, Unigraphic Solutions
Debug shared libraries and DLLs
TotalView makes debugging shared libraries easier than ever by automatically noticing when your program loads them. This allows you to stop the process and conveniently set breakpoints within the code contained in the library. And it lets you easily debug code in header files. It all adds up to making shared libraries and header code as easy to debug as any other part of your code, no matter how complex it gets.
Powerful Data Analysis Features
TotalView's visualizer quickly reveals patterns or anomalies in your data. Occasionally, erroneous data or mismanagement of data sets causes bugs. Searching through large amounts of data however, is time consuming, frustrating, and often impossible. But TotalView lets you fully explore and analyze your data. For example, you can filter out data you don't need or request that TotalView find values out of range. You can set a watchpoint to see when a variable changes. And in parallel or threaded programs, you can see the value of a variable or object across all processes or threads in a single window.