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.

10 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. That's just nutty... by The+Desert+Palooka · · Score: 3, Informative

    With Simics Hindsight it is now possible to step back just before the error and then run forward again, providing another opportunity to reproduce the error and look more closely at what occurs in detail, without having to re-launch the program. Simics Hindsight can even unboot an operating system, running the code backwards until it reaches the initial hardware launch instruction after a hardware reset.

    That would be quite nice... It almost seems like a shuttle head or what not for programmers... Rewind, play, slow motion and so on... I know they said it's the first complete one, but is there anything else out there like this?

  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. The Omniscient Debugger? by Anonymous Coward · · Score: 3, Informative


    http://www.lambdacs.com/debugger/debugger.html/

    Seems like this has been done before, at least for java apps...

  7. 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.

  8. 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.

  9. Re:Too good to be true... by CausticPuppy · · Score: 3, Informative

    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.

    It also says in TFA that it doesn't actually calculate the reverse steps, so it doesn't matter if it's mathematically impossible.

    What it does do is take complete snapshots every (for example) 100 steps. In order to move "backwards" a step, it returns to the previous breakpoint (a known state) and goes forward 99 steps.
    Then it returns to the same breakpoint and goes forward 98 steps. And so on. So from your perspective, you see the 99th step, 98th, 97th, and on down. It only LOOKS like it's running backwards.

    This would even work for the game of life.

    So the performance tradeoff would be this:
    More frequent breakpoints causes forward execution to be slower because it's spending more time saving data at regular intervals for breakpoints, but "reverse" execution would be faster because it has to iterate fewer steps from the previous breakpoint.

    --
    -CausticPuppy "Of all the people I know, you're certainly one of them." -Somebody I don't know
  10. Mod parent up by Animats · · Score: 3, Informative
    That's impressive technology. And it needs to be better known. Reverse-stepping has been available for gdb under Linux since at least 1999, and nobody knows it. So please, mod the parent up.

    This has real potential. Beta versions of programs should run with this installed, so the core dump can be stepped backwards to the trouble spot. This could make Linux software significantly more reliable.