Top Qs
Timeline
Chat
Perspective
Time travel debugging
Stepping back in time through source code From Wikipedia, the free encyclopedia
Remove ads
Remove ads
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.[1] Typically, debugging and debuggers, tools that assist a user with the process of debugging, allow users to pause the execution of running software and inspect the current state of the program.[2] Users can then step forward in time, stepping into or over statements and proceeding in a forward direction.[3] Interactive debuggers include the ability to modify code and step forward based on updated information.[4] Reverse debugging tools allow users to step backwards in time through the steps that resulted in reaching a particular point in the program. Time traveling debuggers provide these features and also allow users to interact with the program, changing the history if desired, and watch how the program responds.[5]
Remove ads
Characteristics supporting bi-directional travel
There are several characteristics that support the ability to move backwards as well as forwards in time.
- Selecting a purely functional programming language helps due to the self-contained nature of pure functions. Pure functions have no side effects and depend only on the information explicitly provided to the function, providing a repeatable, reliable, replayable path through the code.
- Languages and debuggers that enable hot swapping, the ability to modify code as the code is running, provide some of the requirements necessary to rewind, and potentially rewrite execution.[6][7]
- Tools based on the GNU debugger (GDB), available for compatible languages such as C, C++, Go, and Fortran are capable of reverse debugging, but the effort significantly slows interaction.[8]
Remove ads
Time traveling debuggers
Examples of debuggers with the ability to step backwards:
Remove ads
See also
References
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads