[pypy-dev] Dontbug: A reversible debugger for PHP (similar in concept to RevDB for Python/PyPy)

Armin Rigo armin.rigo at gmail.com
Sat Dec 17 05:59:10 EST 2016


Hi Sidharth,

Sorry for answering you only now.

Dontbug is interesting.  It offers roughly the same set of basic
features than RevDB or UndoDB or rr itself.  It is interesting indeed
that reverse debugging is slowly becoming more mainstream, and
standardizing a bit the supported features.  For example, when using
RevDB I found watchpoints to be one of the most useful features.  I
see that Dontbug doesn't support them yet, but plans to.  Great :-)

Implementation-wise, Dontbug is a very different approach than
RevDB.  RevDB is much easier to port than rr: for example it works on
OS/X too, and could be made to work on Windows with more efforts.  It
doesn't require particular OS support, apart from being based for now
on fork().  In the typical PyPy way, it works by systematically
transforming some constructs in the RPython source code of PyPy; this
is something that you can't really do if you start with C code.

On the other hand, with Dontbug I imagine you built a reverse debugger
for PHP by starting with C source code of the PHP implementation,
building on top of what rr provides.  There is a chance that someone
will also do with CPython some day, as well as other interpreters.

Maybe we should try to push RevDB more, but right now it seems not to
be used or known a lot.


On 21 October 2016 at 08:36, Sidharth Kshatriya <sid.kshatriya at gmail.com> wrote:
> I also noticed some references to UndoDB usage on the PyPy project. How has
> your team's experience been with UndoDB+PyPy in general? It would
> interesting to learn about your experiences there...

Yes, we use UndoDB very occasionally to debug hard issues inside the
generated C code of PyPy itself (which is unrelated to RevDB, whose
goal is to be used by Python users).  UndoDB is rather stable
nowadays.  I also tried rr for that once or twice.  But needing that
is rare enough that I'm at most an occasional user of both.


A bientôt,

Armin.


More information about the pypy-dev mailing list