Omniscient Debugging

转载 2006年05月28日 10:02:00
Omniscient Debugging
"Because the Debugger Knows Everything"
21 April 2005

What if your debugger could go "go backwards in time?" Would that make debugging easier? By simply recording all variable assignments, it is possible to do essentially this. This is the underlying idea for omniscient debugging. The amazing part is that significantly large programs can be debugged in this fashion -- Ant, JUnit, the debugger itself.

Returning from rave reviews in Europe (Ecole des mines de Nantes, INSA, ECOOP, AADEBUG, France! Sweden! Germany! Russia! Belgium! Estonia!), the ODB made its next public appearence at OOPSLA where it passed the $100 challenge (that was the amount offered for any bug it couldn't find). And now it will be a feature article in Doctor Dobbs Journal (just in time for my Nth birthday, 9 May 2005)! And just in time for its presentation on stage to thousands of screaming fans at JavaOne!

Life is good for the ODB and that's bad for bugs.

The debugger works by collecting "time stamps" which record everything that happens in a program. A GUI then allows you to navigate backwards in time to look at objects, variables, method calls, etc.

This means that you can see which values are bad, then find where those values came from, who set them and why. This also means that there are no non-deterministic problems. You don't have to guess where the problems might be, you don't have to set breakpoints, you don't have to wonder which threads ran when, you don't ever have to repeat a program run. This is the debugger that you always dreamed about, but never thought was possible.


Debugging PL-SQL calls from Java Session Using Eclipse and SQL Developer


Xcode 的正确打开方式——Debugging

程序员日常开发中有大量时间都会花费在 debug 上,从事 iOS 开发不可避免地需要使用 Xcode。这篇博客就主要介绍了 Xcode 中几种能够大幅提升代码调试效率的方式。 “If de...

Hybrid----Debugging Web Content on iOS(在iOS设备上调试网页内容)

在iOS设备上调试网页内容 用iOS 6已上版本的Safari,可以通过Mac调试移动网页内容,你可以直接看到JavaScript的错误,编辑HTML属性,改变CSS属性,甚至可以在mac机上完成开...
  • xunyn
  • xunyn
  • 2013-06-07 17:44
  • 8178

How to setup java remote debugging in eclipse

How to remote debug java application in Eclipse IDE Remote debugging is not a new concept and many ...

How C/C++ Debugging Works on Android

Xcode 的正确打开方式——Debugging

程序员日常开发中有大量时间都会花费在 debug 上,从事 iOS 开发不可避免地需要使用 Xcode。这篇博客就主要介绍了 Xcode 中几种能够大幅提升代码调试效率的方式。 “If debu...

Windows下的"ptrace"-父进程监视子进程Debugging API

原文地址:  Linux下有功能强大ptrace,用于让父进程监视/修改/控制子进程的状态。...

Debugging Chromium on Android

Debugging Chromium on Android 目录 1 Intro 2 Setting up command lin...

Section 6: Script Tab : Javascript Debugging

I’m going to show you how to debug the Javascript code with Firebug in this tutorial. If you are an ...