Reverb: Speculative Debugging for Web Applications

8Citations
Citations of this article
7Readers
Mendeley users who have this article in their library.
Get full text

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.

Cite

CITATION STYLE

APA

Netravali, R., & Mickens, J. (2019). Reverb: Speculative Debugging for Web Applications. In SoCC 2019 - Proceedings of the ACM Symposium on Cloud Computing (pp. 428–440). Association for Computing Machinery. https://doi.org/10.1145/3357223.3362733

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free