We have added the ability to debug embedded applications forward and backward in time to the Eclipse/CDT platform. www.eclipsecon.org The Debug view now has an intuitive timeline control to allow time manipulations (similar to video editors), and each forward-stepping button has an equivalent backward-stepping counterpart. Users can execute their programs backwards —step over, step into, step out of, instruction step, resume—, hit breakpoints in reverse, and even jump to any time in the past with a single mouse-click. Everything is accurately recreated, including stack frame, variables, memory contents, etc. that were in effect at that time. The only functionality that is compromised is the ability to change values of variables, memory or registers while in the past, since this may alter the program's flow of execution (you can't go back in time & kill your grandfather without affecting your present). Once they return to the present, they can continue debugging from there. In order to help users identify times of interest, we have also added real-time interactive performance metrics graphs showing, among many other things, resource contentions between hardware threads. Users can visually zoom into these graphs, isolate interesting events, quickly jump back in time before these events occurred and resume debugging from there, effectively reliving the moment.
Eclipse, temporal debugging, time travel, embedded, eclipsecon