Proceedings Article10.1145/2950290.2983933
Time-travel debugging for JavaScript/Node.js
Earl T. Barr,Mark Marron,Ed Maurer,Dan James Moseley,Gaurav Seth +4 more
- 01 Nov 2016
- pp 1003-1007
TL;DR: This work embarked on a two year journey to create a production quality time-traveling debugger in Microsoft's open-source ChakraCore JavaScript engine and the popular Node.js application framework.
read more
Abstract: Time-traveling in the execution history of a program during debugging enables a developer to precisely track and understand the sequence of statements and program values leading to an error. To provide this functionality to real world developers, we embarked on a two year journey to create a production quality time-traveling debugger in Microsoft's open-source ChakraCore JavaScript engine and the popular Node.js application framework.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Time-travel testing of Android apps
Zhen Dong,Marcel Böhme,Lucia Cojocaru,Abhik Roychoudhury +3 more
- 27 Jun 2020
TL;DR: The key insight is that pertinent app states which contributed to the original sequence's fitness may not be reached by a mutated event sequence, so time-travel testing is proposed, which can quickly deprioritize testing the main screen state which is visited by most event sequences, and instead focus on testing more interesting states that are otherwise difficult to reach.
121
Finding broken promises in asynchronous JavaScript programs
Saba Alimadadi,Di Zhong,Magnus Madsen,Frank Tip +3 more
- 24 Oct 2018
TL;DR: The notion of promise graphs is extended to include all promise-related features in ECMAScript 6, including default reactions, exceptions, and the synchronization operations race and all, and PromiseKeeper, which performs a dynamic analysis to create promise graphs and infer common promise anti-patterns is reported on.
28
Patent
Indexing a trace by insertion of key frames for replay responsiveness
Jordi Mola,Juan Carlos Arevalo Baeza +1 more
- 08 Mar 2017
TL;DR: In this article, the authors propose a method to insert key frames during indexing of a trace for responsive trace replay, which includes identifying responsiveness goal(s) for trace replay including identifying a target trace section replay time.
13
Patent
Searching an indexed time-travel trace
Jordi Mola
- 10 May 2017
TL;DR: In this article, a search expression is targeted at one or more trace data streams storing a trace of program execution, and a plurality of families of code entity invocations are identified.
13
Global Reproducibility Through Local Control for Distributed Active Objects
Lars Tveito,Einar Broch Johnsen,Rudolf Schlatte +2 more
- 25 Apr 2020
TL;DR: The paper formalizes trace recording and replay for a basic active object language, to show that such local traces suffice to obtain global reproducibility of runs, and extends to the other forms of non-determinism as found in richer active object languages.
References
•Proceedings Article
Debugging operating systems with time-traveling virtual machines
Samuel T. King,George W. Dunlap,Peter M. Chen +2 more
- 10 Apr 2005
TL;DR: Substituted phenol/epichlorohydrin/amine adducts as multipurpose, low concentration additives for hydrocarbon fuels, lubricating oils and mixtures thereof.
Debugging reinvented: asking and answering why and why not questions about program behavior
Amy J. Ko,Brad A. Myers +1 more
- 10 May 2008
TL;DR: The Whyline is a new kind of debugging tool that enables developers to select a question about program output from a set of why did and why didn't questions derived from the program's code and execution.
316
Interactive record/replay for web application debugging
Brian Burg,Richard Bailey,Amy J. Ko,Michael D. Ernst +3 more
- 08 Oct 2013
TL;DR: Timelapse is a tool for quickly recording, reproducing, and debugging interactive behaviors in web applications, built on Dolos, a novel record/replay infrastructure that ensures deterministic execution by capturing and reusing program inputs both from the user and from external sources such as the network.
Tardis: affordable time-travel debugging in managed runtimes
Earl T. Barr,Mark Marron +1 more
- 15 Oct 2014
TL;DR: Tardis provides affordable time-travel with an average overhead of only 7% during normal execution, a rate of 0.6MB/s of history logging, and a worst-case 0.68s time- travel latency on the authors' benchmark applications, making Tardis suitable for use as the default debugger for managed languages.
Expositor: scriptable time-travel debugging with first-class traces
Khoo Yit Phang,Jeffrey S. Foster,Michael Hicks +2 more
- 18 May 2013
TL;DR: Expositor is a new debugging environment that combines scripting and time-travel debugging to allow programmers to automate complex debugging tasks and 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.