Slashdot Mirror


Hindsight: Reversible Computing

One of the more interesting tech pieces that came out this week has been Hindsight [PDF]. Hindsight is made by Virtutech and is billed as the "the first complete, general-purpose tool for reverse execution and debugging of arbitrary electronic systems." The demos were received extremely well and it just looks cool.

14 of 178 comments (clear)

  1. Sounds good - but expensive. by bigtallmofo · · Score: 4, Informative

    From reading about this earlier, it is a very exciting technology for embedded systems. It does seem a bit expensive though:

    Hindsight will go into beta sites in May, with production slated for July. Incremental cost over Simics is around $5,000 per seat, but Hindsight won't target single seats. A typical engagement, including Simics, Hindsight and some initial model development, is estimated at $200,000 to $300,000 for a software development group with 10 to 20 seats.

    --
    I'm a big tall mofo.
  2. UI by GigsVT · · Score: 5, Interesting

    They say the way they accomplish this is running the program in some sort of sandbox and taking checkpoints every so often and then when you step back, it actually runs forward from the closest checkpoint and stops one instruction short.

    My question is how UI interactions are handled. If the execution between the checkpoint and current-1 instruction includes a UI interaction, it might be very confusing to the programmer to know what or how many UI interactions need to be carried out to accomplish the backstep.

    --
    I've had enough abrasive sigs. Kittens are cute and fuzzy.
  3. Not necessarily by spookymonster · · Score: 4, Informative

    From their website, you can get a free academic version of the software as well. At least, that's what the site says (I didn't register to download it, so I can't confirm).

    --
    - Despite popular opinion, I am not perfect.
  4. Mirror by tabkey12 · · Score: 4, Informative
    Mirror of the PDF

    Never underestimate the Slashdot Effect!

  5. Virtualization layer for checkpointing and steppin by jaxdahl · · Score: 4, Informative

    This seems to create a virtualization layer where checkpoints are saved periodically, then instructions are single stepped through. So to step back, it goes to the first checkpoint before the instruction you want to step back to, then it single steps up to that point. This would aid in kernel-level debugging where data structures might be overwritten from almost anywhere in the computer that can access the kernel space -- no need to set a watchpoint then reboot and wait for the next error to occur.

  6. But what about external events by bangzilla · · Score: 4, Interesting

    It's all very well to be able to run code backwards/forwards/slo-mo/etc, but how to handle non deterministic external events coming in from the network? Does this tool presume that all applications to which it will be applied live in isolation?

    --
    Rich people are eccentric. Poor people are strange. Me, I'd be happy with odd.
    1. Re:But what about external events by tesmako · · Score: 5, Informative

      Since it is based on the whole-system simulator Simics -- Yes, it does assume that the app runs in isolation, since all external stuff is just simics simulations.

    2. Re:But what about external events by LiquidCoooled · · Score: 4, Funny

      No, you got it all wrong.

      This product is a cleverly disguised time machine.
      You can actually rollback and reverse to actually see the initial "First post!" remark, and undo the slashdot effect.

      If you look closely, you can also see the cognative response from Hemos as he clicked Accept on this submission.

      --
      liqbase :: faster than paper
  7. Too good to be true... by Leadhyena · · Score: 5, Insightful
    I can see how this software can come in real handy, but it won't work in every situation. It states in TFA that Hindsight doesn't do the naive approach of recording every instrction, but rather takes snapshots and tries to fill in the gaps. There are many types of calculations out there (think The Game of Life or other CAs) that by their nature cannot be reversed, so all of those states would have to be stored or it would be mathematically impossible to calculate the reverse steps.

    Therefore, I can't see their approach being foolproof, and the over-obvious advertisement (this is what normal debugging toolbars look like, but they don't have a nifty step-one-back feature) seems too bright to be withot caveat. At $5,000 a seat I'd say buyer beware.

  8. Not by a decade. by Murmer · · Score: 5, Interesting
    This technology has existed, in GPL form, for ten years. It's just had exactly zero uptake.

    I read this usenet post every now and then when I'm trying to fix something, and it makes me want to cry every time I do.

    --
    Mike Hoye
  9. Reversible Computing != Reversible Execution by Anonymous Coward · · Score: 5, Informative

    Reversible computing is a way of computing without (permenantly) consuming energy. Look it up if you're not familiar, because it's pretty interesting.

    Anyway, the headline is misleading.

  10. OCaml anyone? by fab13n · · Score: 4, Interesting
    OCaml as been offering timestamps and backward debugging for years, in addition of a great programming language (backward debugger's implementation is based on Unix's forking and copy-on-write, so running it on windows requires cygwin). Simply compile your stuff to byte-code rather than with the native optimizing compiler, run the debugger and use backstep/backward just as you used to do with step/forward. Breakpoints block execution in both directions.

    And what about GUI and other side effects? Debugging a program in which such side-effects are deeply interleaved with algorithmics can be tricky indeed, although smart timestamping from the debugger will reduce glitches. But if you don't know better than randomly mixing algo and front-end in the first place, then you'd better fix the programmer than the program...

  11. Any relation to ReVirt? by eddy · · Score: 4, Interesting

    ReVirt:

    The ability to replay the execution of a virtual machine is useful in many ways besides intrusion analysis. For example, it enables one to replay and debug any portion of a prior execution. We have built an extension to gdb that uses virtual-machine replay to provide the illusion of time travel. In particular, we provide the ability to do reverse debugging, though commands such as reverse watchpoint and reverse breakpoint. graph. See our paper in USENIX 2005 for details.

    --
    Belief is the currency of delusion.
  12. Elephants never forget by same_old_story · · Score: 5, Interesting
    John McCarthy has been talking about giving programming langues the notion of time for quite some time (no pun intended).

    In this paper, he proposes the Elephant language that can refer to the past in computer programs.

    Pretty cool stuff!