 Record and replay debugging is very useful for remote debugging and for resolving intermittent, non-deterministic, and other hard-to-reproduce defects.Some debuggers include a feature called "reverse debugging", also known as "historical debugging" or "backwards debugging".These debuggers make it possible to step a program's execution backwards in time.