Are there any open-source alternatives to ReplayDIRECTOR / Chronon Debugger?
Asked Answered
P

2

17

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?

Pore answered 1/2, 2012 at 9:58 Comment(0)
C
14

The only ones I know of are

Colleen answered 17/3, 2012 at 11:32 Comment(1)
Unfortunately I cannot get Omniscient Debugger to work at all 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.Anticipation
P
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.

Provincialism answered 9/11, 2014 at 13:27 Comment(3)
I think the question is asking for alternatives for the JVM. Alternatives for native applications or other runtimes would be a different question entirely.Anticipation
@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 opinionProvincialism
@Provincialism 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!Tantalate

© 2022 - 2024 — McMap. All rights reserved.