• DocumentCode
    3141839
  • Title

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

  • Author

    Khoo Yit Phang ; Foster, Jeffrey S. ; Hicks, Michael

  • Author_Institution
    Comput. Sci. Dept., Univ. of Maryland, College Park, MD, USA
  • fYear
    2013
  • fDate
    18-26 May 2013
  • Firstpage
    352
  • Lastpage
    361
  • Abstract
    We 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. 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. 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.
  • Keywords
    program debugging; program diagnostics; Expositor; diagnosing complex; first-class traces; hard-to-understand bugs; program state snapshots; scriptable time-travel debugging; time-indexed sequence; Computer bugs; Data structures; Debugging; Force; Optimized production technology; Programming; Writing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering (ICSE), 2013 35th International Conference on
  • Conference_Location
    San Francisco, CA
  • Print_ISBN
    978-1-4673-3073-2
  • Type

    conf

  • DOI
    10.1109/ICSE.2013.6606581
  • Filename
    6606581