Time Travel made possible with Eclipse (temporal debugging)
Developer Track · Short Talk
Presentation file
8
·
9
·
10
·
11
·
12
·
13
·
14
·
15
·
16
·
17
·
18
·
19
Dan Bourque

Watch
a video of the presentation.
We have added the ability to debug embedded applications forward and backward
in time to the Eclipse/CDT platform. Each forward-stepping button has an
equivalent backward-stepping counterpart, and the Debug view has a timeline
control to allow time manipulations (similar to video editors).
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.
Please note, we aren't promoting a product. Our IDE is only targeting Cisco
engineers anyhow. We intend to show how we've achieved this in the spirit of
sharing so that others may be enticed to add this functionality to Eclipse's
core, not only for embedded systems.
Short Talks provide very little time to cover such a comprehensive topic, so
please look for
the
associated demo and our 'birds of a feather' sessions during the
conference.
With over 15 years of software engineering experience, Dan is the GUI Tools team lead at Cisco Systems in San Jose, creating an embedded C/C++ IDE for microcode engineers. Besides adding temporal debugging capabilities, he is intimately knowledgeable of many facets of Eclipse/CDT/GEF, and implements innovative views for all aspects of the hardware being developed for. He created a full-featured C++ IDE from scratch back in 2000 —before the advent of Eclipse— for a startup company in Ottawa, Canada. Being a true nerd, he develops .NET applications for the Windows Mobile platform on his home-made robot in his spare time. :o) Email him at Dan.Bourque@gmail.com, or visit his website at www.DanBourque.com