Record and replay debugging race conditions and deadlocks in Linux applications.
TotalView's reverse debugging capability records the execution history of your program and makes that history available for diagnosis. This new approach—working back from a failure, error, or crash to its root cause—eliminates the need to restart your program repeatedly with different breakpoint locations. The ability to do reverse debugging, stepping freely both forwards and backwards through program execution, drastically reduces the amount of time invested in troubleshooting your code.
Also included in TotalView is "Replay on Demand" which allows developers to enable reverse debugging whenever they need to, even in the middle of a debugging session. The decision to utilize reverse debugging does not need to be made prior to starting the application, instead developers can quickly run past the part of the program that is working correctly and engage reverse debugging as they reach the part they need to study more carefully.
Reverse debugging is supported for applications written in C, C++ or Fortran on Linux x86 or Linux x86-64 platforms and works on both serial and parallel (MPI) programs. Supported parallel environments include Ethernet and Infiniband based clusters as well as the Cray XE with its Gemini interconnect.
Reverse debugging supports recording and replaying:
- Heap memory usage
- Process file and network I/O
- Thread context switches
- Multi-threaded applications
- MPI parallel applications
- Distributed applications
- Network applications
Learn more about TotalView's reverse debugging capabilities, ReplayEngine:
Download a Free Evaluation Copy of TotalView
and try it for yourself!