When debugging, developers often use backwards reasoning to find possible causes for a bug symptom they observed. The popularity of this approach likely stems from the fact that online debuggers, such as jdb, only support stepping forwards through the execution of an application and analyzing the current state of the program.
In contrast, omniscient debuggers allow developers to debug back-in-time and freely step through the execution. However, the application run has to be recorded first, which implies a significant runtime overhead of a factor between 20 and 252.
In this demo we present RedShell, a prototype that extends the Eclipse Java debugger with back-in-time debugging capabilities in a lightweight fashion.