Reverb: Speculative Debugging for Web Applications

Ravi Netravali, James Mickens

Research output: Chapter in Book/Report/Conference proceedingConference contribution

7 Scopus citations

Abstract

Bugs are common in web pages. Unfortunately, traditional debugging primitives like breakpoints are crude tools for understanding the asynchronous, wide-Area data flows that bind client-side JavaScript code and server-side application logic. In this paper, we describe Reverb, a powerful new debugger that makes data flows explicit and queryable. Reverb provides three novel features. First, Reverb tracks precise value provenance, allowing a developer to quickly identify the reads and writes to JavaScript state that affected a particular variable's value. Second, Reverb enables speculative bug fix analysis. A developer can replay a program to a certain point, change code or data in the program, and then resume the replay; Reverb uses the remaining log of nondeterministic events to influence the post-edit replay, allowing the developer to investigate whether the hypothesized bug fix would have helped the original execution run. Third, Reverb supports wide-Area debugging for applications whose server-side components use event-driven architectures. By tracking the data flows between clients and servers, Reverb enables speculative replaying of the distributed application.

Original languageEnglish (US)
Title of host publicationSoCC 2019 - Proceedings of the ACM Symposium on Cloud Computing
PublisherAssociation for Computing Machinery
Pages428-440
Number of pages13
ISBN (Electronic)9781450369732
DOIs
StatePublished - Nov 20 2019
Externally publishedYes
Event10th ACM Symposium on Cloud Computing, SoCC 2019 - Santa Cruz, United States
Duration: Nov 20 2019Nov 23 2019

Publication series

NameSoCC 2019 - Proceedings of the ACM Symposium on Cloud Computing

Conference

Conference10th ACM Symposium on Cloud Computing, SoCC 2019
Country/TerritoryUnited States
CitySanta Cruz
Period11/20/1911/23/19

All Science Journal Classification (ASJC) codes

  • Artificial Intelligence
  • Computational Theory and Mathematics

Keywords

  • record-And-replay debugging
  • systems debugging

Fingerprint

Dive into the research topics of 'Reverb: Speculative Debugging for Web Applications'. Together they form a unique fingerprint.

Cite this