Reverse debugging with ReplayEngine
Record and replay debugging race conditions and deadlocks in Linux applications
TotalView 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.
A TotalView feature, Replay on Demand allows developers to enable reverse debugging whenever they need to, even in the middle of a debugging session. The decision to use reverse debugging does not need to be made prior to starting the application. Instead, you can quickly run past the part of the program that is working correctly and engage reverse debugging as you reach the part you need to study more carefully.
Save and restore functionality means you can save execution history to a file and load it later to continue a debugging session. This opens up collaboration opportunities and makes it more convenient to debug. Recording files can be created in test environments and then examined at the development team's convenience on development systems.
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.