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
A debugger or debugging tool is a computer program used to software testing, test and debugging, debug other programs (the "target" program). The main use of a debugger is to run the target program under controlled conditions that permit the pr ...
to help diagnose and resolve defects. The concept is analogous to the use of a
flight data recorder
A flight recorder is an electronic recording device placed in an aircraft for the purpose of facilitating the investigation of aviation accidents and incidents. The device may often be referred to as a "black box", an outdated name which has b ...
to diagnose the cause of an airplane flight malfunction.
Recording and replaying
Record and replay debuggers record
application state
In information technology and computer science, a system is described as stateful if it is designed to remember preceding events or user interactions; the remembered information is called the state of the system.
The set of states a system can oc ...
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. 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, 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 Time travel debugging or time traveling debugging is the process of stepping back in time through source code to understand what is happening during execution of a computer program. Typically, debugging and debuggers, tools that assist a user with ...
.
Record and replay debuggers
*
GDB
The GNU Debugger (GDB) is a Software portability, portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada (programming language), Ada, C (programming language), C, C++, Objective-C, Free Pasc ...
(
GNU
GNU () is an extensive collection of free software (383 packages as of January 2022), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operat ...
)
* LiveRecorder (
Undo
Undo is an interaction technique which is implemented in many computer programs. It erases the last change done to the document, reverting it to an older state. In some more advanced programs, such as graphic processing, undo will negate the las ...
)
*
rr (Mozilla)
* TotalView's ReplayEngine (RogueWave)
* PyTrace for
Python
Python may refer to:
Snakes
* Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia
** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia
* Python (mythology), a mythical serpent
Computing
* Python (pro ...
References
{{Reflist
Debuggers