「1.INTRODUCTION」

  CREATED BY JENKINSBOT

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来选择自己的程序而不是演示程序:

% cd ~/Debugger

% 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”