Omniscient debugging

Friday 4 June 2004

Bil Lewis has implemented an Omniscient Debugger for Java. It tracks the entire history of the execution of a program, allowing you to move backward and forward through time watching the state change. There’s even a slider at the top to change the time. It sounds very cool, though I’m skeptical that it could be used practically on real programs (that is, large ones).

Comments

[gravatar]
andrew 2:06 PM on 5 Jun 2004

Reminds me of a native code profiler that I looked at for the Notes server. The literature claimed that "it worked great on notepad.exe"

Swell.

[gravatar]
Tom Morris 12:15 PM on 10 Jun 2004

A better starting page is this http://www.lambdacs.com/debugger/debugger.html
It includes a link to the one page description that Ned pointed to, but also some links to other stuff.

Clearly you're not going to be using it to record "everything" during a weather simulation run, but it sounds like an efficient way to debug certain classes of problems.

[gravatar]
Arthur 3:23 PM on 23 Jun 2004

This actually could work on large programs. I used to work at a company where we had our own similar debugging system. It recorded everything, including tester's screen preferences. You could even debug multiuser apps! It allowed us to find 90% of those hard-to-reproduce bugs that only come out something like once a year, after a 4-hour session. With 10MB of C source code, accumulated over something like 10 years, that was a major help.

Then a new guy arrived at the company who found many of those "Oh! That must be that one that happened four years ago!" bugs. With code printouts and a pencil...

[gravatar]
Rodrigo Senra 7:47 PM on 18 Feb 2013

I will take a shot at trying to build an Omniscient Debugger in Python, just for fun.
It will be hosted at https://github.com/rodsenra/pode

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
URLs auto-link and some tags are allowed: <a><b><i><p><br><pre>.