Expositor: Scriptable time-travel debugging with first-class traces

Khoo Yit Phang, Jeffrey S. Foster, Michael Hicks
2013 2013 35th International Conference on Software Engineering (ICSE)  
We present EXPOSITOR, a new debugging environment that combines scripting and time-travel debugging to allow developers 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. Developers 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
more » ... 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 developers to maximize the efficiency of their debugging scripts. We have 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.
doi:10.1109/icse.2013.6606581 dblp:conf/icse/KhooFH13 fatcat:w3sobwqfkrflxih64mllkkwuky