Mozilla's low-overhead open source replay debugger
robert.ocallahan.org
robert.ocallahan.org
It seems to me that a large portion of cool stuff doesn't make it out from /new any more (not just this case, many others lately)
Deleted comment
Wow, this is a wonderful thing.
I would go as far as to say it is the tool every developer wanted and most thought was impossible (the low overhead part at least).
Only recording the nondeterministic parts and replaying the rest is so obvious, once someone else has thought of it.
We've implemented an in-kernel linux multicore record/replay engine. See for more: http://velvetpulse.com/2012/11/27/scribe-the-deterministic-t...
We also did a mutable replay engine, to replay on modified program (e.g. replay a bug that happened in a production environment, but this time with the logging verbosity turned into debug mode). Check out Dora: http://viennot.biz/asplos2013_dora.pdf
Think of it as the "git" for debugging. Take a snapshot, keep going etc ... and then backtrack back to the point where it all started going wrong.
Just very hard to automate easily, yet this uses gdb and all the other macro/command goodness (well, for power users) that gdb comes with.
It's unfortunate that the no-shared-memory limitation is so hard-baked in, so it would seem that things like Chrome rendering processes wouldn't play nicely with rr (I'm assuming they communicate with shared memory, correctly if I'm wrong!).
http://sysemu.sourceforge.net/
Re: Chromium IPC. "Channels are implemented using named pipes on Windows, and socket pairs (or in some special cases unix domain sockets) on POSIX."
I can't wait to try rr out.
While the idea of a replay debugger is really nice, I don't understand where this limitation comes from. I thought, that since years we practically live in a 64 bit world.
Time and money? Such as scheme requires a lot of very low-level ops (including things which are not available on all architectures), x86 is simpler and better-understood than x64, starting the project there seems as good a choice as not.
I have only tried myself the reversible debugger in ocaml, and it was an eye opening experience.
On the other hand, rr can't do reverse debugging.
It also is similar to GDB's record-and-reply functionality, except that I believe GDB is limited to a single process. I suspect that GDB's approach is much higher overhead also, because I think it actually records state changes for every instruction: http://sourceware.org/gdb/onlinedocs/gdb/Process-Record-and-...
Unlike the GDB functionality, this doesn't seem to support reverse-stepping. Hopefully this can be added -- it makes a huge difference when you can reverse-step backwards from the failure to find out where things went wrong: https://sourceware.org/gdb/onlinedocs/gdb/Reverse-Execution....
Yes exactly, or if it's cheaper, create periodic compressed snapshots and replay from the previous one to recreate intermediate states. In my experience GDB's recording is very expensive and very rapidly runs into resource limits. Hopefully a snapshot-based approach would be more scalable.
And the github: https://github.com/mozilla/rr
(On a side note, I think the gradient background is worse than a plain white background, when removing it, it become a lot more readable)
Edit: That's sarcasm, people.
No one (that I've seen, anyway) is ragging on Brendan Eich for being a Christian. I don't even know whether he is, although it's a fair guess given his decision to support Proposition 8.
Many people are saying that Eich's support of Proposition 8 is a bad thing, makes him a bad choice for CEO of Mozilla, discourages them from using Mozilla's products, etc.
Attacking someone for being a Christian: religious bigotry based on disapproving of someone simply on the basis of their identity. Generally a bad thing.
Attacking someone for supporting Proposition 8: disapproval based on what the person has actually done and its likely consequences. No reason why it shouldn't be a reasonable thing.
This doesn't seem to me to be a very subtle distinction.
(Aside: I do find it curious that of the four people who first come to mind when I think of Mozilla -- Mitchell Baker, Gervaise Markham, Robert O'Callahan, Brendan Eich -- two are rather vocally Christian (gerv's blog is called "Hacking for Christ"!) and a third has become infamous for an action that's probably the result of a similar religious position. Just coincidence?)
I have some hypotheses (e.g. Johnny doesn't blog, so isn't as "famous"), but I'm curious whether you have any yourself.
An example more extreme than Brendan Eich's: Suppose someone is a devout Christian but also rather deranged, and believes that the Bible is full of coded messages telling him to kill (say) school biology teachers. So he goes and kills a bunch of school biology teachers. If I say "That was a terrible thing to do and he shouldn't have done it", that doesn't mean that I am going to hate on everyone else who is a devout Christian -- because, as it happens, plenty of people manage to be devout Christians without murdering biology teachers.
Perhaps (so far as I know this is pure speculation) Brendan Eich is a Christian and the particular variety of Christianity he adheres to tells him to try to stop same-sex couples' relationships being legally recognized. If so, then I think the particular variety of Christianity he adheres to is leading him to do harmful things and I wish he would stop. But that doesn't require me to object on principle to everyone who is a Christian, not least because plenty of people manage to be Christians without trying to stop same-sex couples' relationships being legally recognized.
Now, let us suppose there is a Christian denomination that has opposition to same-sex marriage as a central part of its teaching, and that does not permit anyone to belong to it unless they work to oppose same-sex marriage, including making financial contributions to campaigns like the one for Proposition 8. And suppose it turns out that some particular person is a member in good standing of that denomination. Then I'm quite happy following the following line of thought: This person belongs to that denomination; belonging to it means being a fervent opponent of same-sex marriage and contributing to campaigns against same-sex marriage; therefore this person has almost certainly done things I consider harmful and antisocial; so much the worse for this person. You may, if you please, consider this anti-religious bigotry. If so, I invite you to consider the following two questions. (1) Is it possible for a religion (or some particular version of a religion) to be morally harmful to its practitioners? (2) If you learned that someone was a member in good standing of an Islamic sect that had glorification of terrorism as a central doctrine, would you think worse of them as a result?