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.
New in TotalView 8.14: Save execution history to a file and load it in later to continue a debugging session.
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.