Reverse debugging with ReplayEngine

Record and replay debugging race conditions and deadlocks in Linux applications

Reverse debugging records the execution history of a program and makes that history available for diagnosis. Working back from a failure, error, or crash to its root cause eliminates restarting the program repeatedly with different breakpoints. Reverse debugging, stepping freely both forwards and backwards, drastically reduces the amount of time troubleshooting your code. Learn more about TotalView for HPC and CodeDynamics.

Developers can enable reverse debugging whenever needed. Run past parts of the program that work correctly and engage reverse debugging when needed.

Save execution history to a file and load it later to continue a debugging session. This opens collaboration opportunities. Create recording files in test environments and then examined on development systems.

Reverse debugging is supported for applications written in C, C++, or Fortran on Linux x86 or Linux x86-64 platforms.

Product image: Application where the program counter has stepped backwards a few steps

Application where the program counter has stepped backwards a few steps - click to enlarge

Watch our introduction to reverse debugging video

Reverse debugging supports recording and replaying:

  • Heap memory usage
  • Process file and network I/O
  • Thread context switches
  • Multithreaded applications
  • MPI parallel applications
  • Distributed applications
  • Network applications

Download a free evaluation copy of TotalView and try it for yourself.

Learn more about our capabilities.