Ada supports multi-tasking (multi-threading) and debugging that is hard. The Rational debugger did a reasonable job at helping you break into the right thread at the right time, and step through it, seeing where it went and what the values of the variables were.
The debugger had an optional feature – the ability to step-forward or backward through the code.
You could undo the last twenty steps to see where the thread had been, what values the variables had before they took the current variables.
It was a great feature… in theory.
However, in practice, the run-time environment ran so slowly as it stored all the interim state, that it was faster to restart the basic debugger (with the history option turned off) and just not step quite so far the second time.
Nice idea, though.
Comment by Aristotle Pagaltzis on March 26, 2006
Devel::ebug is a Perl module implementing an extensible debugger. It comes with various interfaces, including a local webserver that serves the debugger interface as a AJAX-enabled web app, in which you can step backwards in the code by hitting the browser back-button.
You are not a computer nerd if you don’t find that slightly arousing.