Expositor: Scriptable Time-Travel Debugging with First Class Traces

dc.contributor.authorKhoo, Yit Phang
dc.contributor.authorFoster, Jeffrey S.
dc.contributor.authorHicks, Michael
dc.date.accessioned2013-07-26T20:20:54Z
dc.date.available2013-07-26T20:20:54Z
dc.date.issued2013-02-24
dc.description.abstractWe present Expositor, a new debugging environment that combines scripting and time-travel debugging to allow programmers to automate complex debugging tasks. The fundamental abstraction provided by Expositor is the execution trace, which is a time-indexed sequence of program state snapshots or projections thereof. Programmers can manipulate traces as if they were simple lists with operations such as map and filter. Under the hood, Expositor efficiently implements traces as lazy, sparse interval trees whose contents are materialized on demand. Expositor also provides a novel data structure, the edit hash array mapped trie, which is a lazy implementation of sets, maps, multisets, and multimaps that enables programmers to maximize the efficiency of their debugging scripts. In our micro-benchmarks, Expositor scripts are faster than the equivalent non-lazy scripts for common debugging scenarios. We have also used Expositor to debug a stack overflow, and to unravel a subtle data race in Firefox. We believe that Expositor represents an important step forward in improving the technology for diagnosing complex, hard-to-understand bugs.en_US
dc.identifier.urihttp://hdl.handle.net/1903/14406
dc.language.isoen_USen_US
dc.relation.ispartofseriesUM Computer Science Department;CS-TR-5021
dc.titleExpositor: Scriptable Time-Travel Debugging with First Class Tracesen_US
dc.typeTechnical Reporten_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
CS-TR-5021.pdf
Size:
1.28 MB
Format:
Adobe Portable Document Format