We have proposed an automated debugging technique that explains a failure by computing its causal path leading from the root
cause to the failure. Given a failing execution, the technique first searches for a dynamic patch. Fine-grained execution
comparison between the failing run and the patched run is performed to isolate the causal path. The comparison is enabled
by precisely aligning the two executions. We herein propose and study two algorithms aiming at efficiency. We also evaluate
the effectiveness and cost of our technique on a set of real bugs, including requirement bugs in which no a single or small
set of statements can be blamed as the root cause. In such cases, understanding a failure is more important.
Keywords debugging - automated debugging - execution indexing