Record and replay debugging

Short description: Software debugging technique

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]

## Contents

* 1 Recording and replaying
* 2 Usage
* 3 Record and replay debuggers
* 4 References

## 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]
* PyTrace for Python[8]

## 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. http://www.odbms.org/blog/2019/04/on-software-reliability-interview-with-barry-morris-and-dale-vile/. Retrieved 2 April 2019.
3. ↑ Undo, Ltd.. "System and method for debugging of computer programs". US Patent Office. https://patents.google.com/patent/US9268666. Retrieved 23 February 2016.
4. ↑ Undo, Ltd. "Remote recording". Undo, Ltd.. https://docs.undo.io/RemoteDebugging.html. Retrieved 1 October 2019.
5. ↑ "Process Record and Replay (Debugging with GDB)". https://sourceware.org/gdb/current/onlinedocs/gdb/Process-Record-and-Replay.html.
6. ↑ "LiveRecorder - Undo". https://undo.io/solutions/products/live-recorder/.
7. ↑ "TotalView for HPC". https://help.totalview.io/previous_releases/2019/html/index.html#page/User_Guides/UsingReplayEngine.html#.
8. ↑ "PyTrace Time Travel Debugger for Python". https://pytrace.com/.

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Record and replay debugging. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Record_and_replay_debugging&oldid=688729"