CIS SIG-SYS Seminar, Jeffrey Foster, University of Maryland

Tuesday, April 8, 2014 at 3:30am to 4:45am

Smith Hall, 102A Smith Hall, University of Delaware, Newark, DE 19716, USA

Title: Expositor: Scriptable Time-Travel Debugging with First-Class Traces

We present Expostior, a new debugging environment that combines scripting and time-travel debugging to allow programmers to automate complex debugging tasks. The fundamental abstraction provided by Expostior is the execution trace, which is a time-indexed sequence of program state snapshots. Programmers can manipulate traces as if they were simple lists with operations such as map and filter. Under the hood, Expostior efficiently implements traces as lazy, sparse interval trees whose contents are materialized on demand. Expostior 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. We have used Expostior to debug a stack overflow and to unravel a subtle data race in Firefox. We believe that Expostior represents an important step forward in improving the technology for diagnosing complex, hard-to-understand bugs.

Jeffrey S. Foster is an Associate Professor in the Department of Computer Science at the University of Maryland, College Park and in the University of Maryland Institute for Advanced Computer Studies. He is also Associate Chair for Graduate Education in the Department of Computer Science.  Jeff received his Ph.D. in Computer Science from the University of California, Berkeley, and he received M.Eng. and B.S. degrees from Cornell University, also in Computer Science.  Jeff's research focuses on developing programming languages and software engineering approaches to making software easier to write and more reliable, secure, and available.

Event Type

Academics, College of Engineering


Computer & Information Sciences


Custom Feed




ENGR - Computer & Information Sciences

Contact Email

Contact Name

Stephen Siegel

Recent Activity

People Going

Getting Here