16

You may be familiar with

they both advertise themselves as 'Java DVRs' - are there any open-source implementations that offer similar (even a subset of their) features?

Robin Green
  • 32,079
  • 16
  • 104
  • 187
heeboir
  • 729
  • 1
  • 9
  • 26

2 Answers2

14

The only ones I know of are

Appleman1234
  • 15,946
  • 45
  • 67
  • 4
    Unfortunately I [cannot get Omniscient Debugger to work at all](http://stackoverflow.com/questions/9686946/how-to-use-omniscient-debugger) on Java 6, Jive is at least an order of magnitude slower than Chronon, Whyline is unmaintained and "very buggy", and Diver I didn't try but looks like a toy. Therefore I don't think any of these options are production-quality replacements for Chronon. They may be useful for education and research purposes, though. – Robin Green Mar 18 '12 at 07:08
6

Omniscient debuggers record the trace data to query afterwards. They are often also called reverse-, back-in-time, bidirectional- or time-travel-debuggers, but I prefer to reserve those terms for debuggers that allow actual reversing in a live program.

TOD is an open-source omniscient debugger for Java.

JIVE is another free omniscient debugger for Java, though not open-source.

The GNU debugger, gdb. It has two modes, one is process record and replay, the other is true reverse debugging. It is extremely slow, as it undoes single machine instruction at a time.

And for Python, the extended python debugger prototype, epdb, is also a true reverse debugger. Here is the thesis and here is the program and the code. I used epdb as a starting point to create a live reverse debugger as part of my MSc degree. The thesis covers the details of the implementation, as well as most of the historical approaches to reverse debugging. It is available online: Combining reverse debugging and live programming towards visual thinking in computer programming.

Abraham
  • 2,860
  • 1
  • 20
  • 9
  • I think the question is asking for alternatives for the JVM. Alternatives for native applications or other runtimes would be a different question entirely. – Robin Green Apr 08 '15 at 12:22
  • 1
    @RobinGreen I disagree with your approach. Though his question does give two examples of 'Java DVRs', it is tagged not with Java, but with 'reverse debugging' in general. He asks for "_any_ open-source implementations that offer similar features". However, in case he meant Java only, the first two items in my answer, TOD and JIVE, adequately answer the question wrt Java. I then added two more for other languages, in case he did mean more. A comprehensive answer that covers what the user might have meant, in order of likelihood, is a good approach which should not get a down-vote, in my opinion – Abraham Apr 11 '15 at 18:42
  • @Abraham Thank you so much, I have been looking for a reversible debugger for Python for a very long time, and both epdb and the thesis will be of great values to me! – gaborous Mar 13 '16 at 18:07