•Context:
–When debugging, you would really like to step the
program backwards, from
the fault point to the point of the bug.
•Problem:
–Debuggers do not support back-stepping mainly because
they cannot undo any
instruction: i.e., recover memory & register state prior the statement.
•Solution:
–Take regular checkpoints of program state.
–Now we can roll back to any checkpoint.
–But cost of checkpoints is overhead.
–Key problem: how to make checkpoints sparse, yet provide
the illusion that we can
undo statements any granularity (i.e., back step across any single instruction)?
•Papers: