Record and replay debugging

Record and replay debugging is the process of recording the execution of a software program so that it may be played back within a debugger to help diagnose and resolve defects.[1] The concept is analogous to the use of a flight data recorder to diagnose the cause of an airplane flight malfunction.[2]

Recording and replaying

Record and replay debuggers record application state at every step of the program's process and thread execution, including memory interactions, deterministic and non-deterministic inputs, system resource status, and store it to disk in a log.[3] The recording allows the program to be replayed again and again, and debugged exactly as it happened.

Usage

Recordings can be made in one location and replayed in another,[4] which makes it useful for remote debugging.

Record and replay debugging is particularly useful for debugging intermittent and non-deterministic defects, which can be difficult to reproduce.

Record and replay debugging technology is often fundamental to reverse debugging and time travel debugging.

Record and replay debuggers

  • GDB (Gnu)[5]
  • LiveRecorder (Undo)[6]
  • rr (Mozilla)
  • TotalView's ReplayEngine (RogueWave)[7]

References

  1. Mozilla (2017). "Engineering Record And Replay For Deployability Extended Technical Report". arXiv:1705.05937 [cs.PL].
  2. Zicari, Roberto. "On Software Reliability. Interview with Barry Morris and Dale Vile". ODBMS Industry Watch. ODBMS Industry Watch. Retrieved 2 April 2019.
  3. Undo, Ltd. "System and method for debugging of computer programs". Google Patents. US Patent Office. Retrieved 23 February 2016.
  4. Undo, Ltd. "Remote recording". Undo Documentation. Undo, Ltd. Retrieved 1 October 2019.
  5. https://sourceware.org/gdb/current/onlinedocs/gdb/Process-Record-and-Replay.html
  6. https://undo.io/solutions/products/live-recorder/
  7. https://help.totalview.io/previous_releases/2019/html/index.html#page/User_Guides%2FUsingReplayEngine.html%23
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.