软件介绍
ODB 是一个 Java 调试器,这个调试器可以“倒退时间”回溯程序的执行过程。
软件信息
作者:Bil Lambda
简介:http://omniscientdebugger.github.io/ODBDescription.html
手册:http://omniscientdebugger.github.io/ODBUserManual.html
介绍:http://www.cs.kent.edu/~farrell/mc08/lectures/progs/pthreads/Lewis-Berg/odb/AADEBUG_Mar_03.pdf
参考文献
ODB 是什么?
记录程序调用记录,“时间倒退”。
ODB 以时间戳为单位记录程序中发生的事情。然后 GUI 允许你向后查看对象、变量、方法调用等等。因此,你可以看到有问题的变量,这个变量来自于哪里,谁设置了该变量,已经为什么如此设置。这也表示没有什么确定不了的问题。你也不需要猜测问题可能发生在哪里,也不需要设置断点,也不需要惊讶于哪个线程运行了他们,也不需要重复的运行程序。
ODB 有 Java 语言实现。
ODB 的实现原理
ODB 是在程序中的每个“兴趣点”(赋值,进行方法调用,抛出 / 捕获异常)中收集“时间戳”,然后允许程序员使用这些时间戳来探索该程序的历史运行。
它在程序的类中插入代码,并在程序运行时记录事件。
在新版本中发生的更改
可以在 Eclipse 的 RUN 菜单中运行 ODB。通过导入 ODB,将 main 类设置为 com.lambda.Debugger.Debugger,然后将参数设置为你想运行的程序。
JDK1.5 可以正常工作。你必须选择正确版本的 ODB:
- ODB1.5 用于 JDK1.5;
- ODB1.4 用于 JDK1.4;
运行 DEMO 程序
下载 debugger.jar,然后运行它(java -jar debugger.jar)。选择“Demo”(一个内置的指针(一个 bug)!多线程快速排序)。该程序将运行,然后调试器将弹出,你将能够“探索”程序的历史。按下按钮,双击对象。
你可以通过定义一些 SEHLL 别名并调用 debug 来选择自己的程序而不是演示程序:
% jar xf debugger.jar aliases docs
% source aliases
% debug YourProgram
在.jar 文件中有一个完整的手册(docs/ *),以及一些 Unix 别名(Microsoft .bat 文件)以使 ODB 更容易使用。
目前 ODB 的发布地址为:https://github.com/OmniscientDebugger/LewisOmniscientDebugger/releases/tag/0.1.5
参考文献
Omniscient Debugging “Because the Debugger Knows Everything”