Summarized Trace Indexing and Querying for Scalable Back-in-Time Debugging
2011; Springer Science+Business Media; Linguagem: Inglês
10.1007/978-3-642-22655-7_26
ISSN1611-3349
AutoresGuillaume Pothier, Éric Tanter,
Tópico(s)Logic, programming, and type systems
ResumoBack-in-time debuggers offer an interactive exploration interface to execution traces. However, maintaining a good level of interactivity with large execution traces is challenging. Current approaches either maintain execution traces in memory, which limits scalability, or perform exhaustive on-disk indexing, which is not efficient enough. We present a novel scalable disk-based approach that supports efficient capture, indexing, and interactive navigation of arbitrarily large execution traces. In particular, our approach provides strong guarantees in terms of query processing time, ensuring an interactive debugging experience. The execution trace is divided into bounded-size execution blocks about which summary information is indexed. Blocks themselves are discarded, and retrieved as needed through partial deterministic replay. For querying, the index provides coarse answers at the level of execution blocks, which are then replayed to find the exact answer. Benchmarks on a prototype for Java show that the system is fast in practice, and outperforms existing back-in-time debuggers.
Referência(s)