Abstract
For real-time programs reproducing a bug by rerunning the system is likely to fail, making fault localization a time-consuming process. Omniscient debugging is a technique that stores each run in such a
way that it supports going backwards in time. However, the overhead of existing omniscient debugging implementations for languages like Java is so
large that it cannot be effectively used in practice.
In this paper, we show that for agent-oriented programming practical omniscient debugging is possible. We design a tracing mechanism for effciently
storing and exploring agent program runs. We are
the frst to demonstrate that this mechanism does
not affect program runs by empirically establishing that the same tests succeed or fail. Usability is
supported by a trace visualization method aimed at
more effectively locating faults in agent programs