Rivet: browser-agnostic remote debugging for web applications

James W. Mickens · 2012

Rivet is the first fully-featured, browser-agnostic re-mote debugger for web applications. Using Rivet, de-velopers can inspect and modify the state of live web pages that are running inside unmodified end-user web browsers. This allows developers to explore real applica-tion bugs in the context of the actual machines on which those bugs occur. To make an application Rivet-aware, developers simply add the Rivet JavaScript library to the client-side portion of the application. Later, when a user detects a problem with the application, the user informs Rivet; in turn, Rivet pauses the application and notifies a remote debug server that a debuggable session is avail-able. The server can launch an interactive debugger front-end for a human developer, or use Rivet’s live patching mechanism to automatically install a fix on the client or run diagnostics for offline analysis. Experiments show that Rivet imposes negligible overhead during normal ap-plication operation. At debug time, Rivet’s network foot-print is small, and Rivet is computationally fast enough to support non-trivial diagnostics and live patches. 1

Read the paper · More papers on PaperTik