Understanding Dynamic Software Behavior with Tools for Retroactive Investigation

dc.contributor.advisorErnst, Michael Den_US
dc.contributor.authorBurg, Brianen_US
dc.date.accessioned2015-09-29T18:00:56Z
dc.date.available2015-09-29T18:00:56Z
dc.date.issued2015-09-29
dc.date.submitted2015en_US
dc.descriptionThesis (Ph.D.)--University of Washington, 2015en_US
dc.description.abstractThe web is a widely-available open application platform, where anyone can freely inspect a live program's client-side source code and runtime state. Despite these platform advantages, understanding and debugging dynamic behavior in web programs is still very challenging. Several barriers stand in the way of understanding dynamic behaviors: reproducing complex interactions is often impossible; finding and comparing a behavior's runtime states is time-consuming; and the code that implements a behavior is scattered across multiple DOM, CSS, and JavaScript files. This dissertation demonstrates that these barriers can be addressed by new program understanding tools that rely on the ability to capture a program execution and revisit past program states within it. We show that when integrated as part of a browser engine, deterministic replay is fast, transparent, and pervasive; and these properties make it a suitable platform for such program understanding tools. This claim is substantiated by several novel interfaces for understanding dynamic behaviors. These prototypes exemplify three strategies for navigating through captured program executions: (1) by visualizing and seeking to input events---such as user interactions, network callbacks, and asynchronous tasks; (2) by retroactively logging program states and reverting execution back to log-producing statements; and (3) by working backwards from differences in visual output to the source code responsible for inducing output-affecting state changes. Some of these capabilities have been incorporated into the WebKit browser engine, demonstrating their practicality.en_US
dc.embargo.termsOpen Accessen_US
dc.format.mimetypeapplication/pdfen_US
dc.identifier.otherBurg_washington_0250E_14905.pdfen_US
dc.identifier.urihttp://hdl.handle.net/1773/33703
dc.language.isoen_USen_US
dc.rightsCopyright is held by the individual authors.en_US
dc.subjectdebugging; deterministic replay; web browseren_US
dc.subject.otherComputer scienceen_US
dc.subject.othercomputer science and engineeringen_US
dc.titleUnderstanding Dynamic Software Behavior with Tools for Retroactive Investigationen_US
dc.typeThesisen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Burg_washington_0250E_14905.pdf
Size:
2.85 MB
Format:
Adobe Portable Document Format