English
Related papers

Related papers: Idempotent I/O for safe time travel

200 papers

By recording every state change in the run of a program, it is possible to present the programmer every bit of information that might be desired. Essentially, it becomes possible to debug the program by going ``backwards in time,'' vastly…

Software Engineering · Computer Science 2009-09-29 Bil Lewis

Backtracking (i.e., reverse execution) helps the user of a debugger to naturally think backwards along the execution path of a program, and thinking backwards makes it easy to locate the origin of a bug. So far backtracking has been…

Programming Languages · Computer Science 2013-09-23 Jooyong Yi

Designing and debugging distributed systems is notoriously difficult. The correctness of a distributed system is largely determined by its handling of failure scenarios. The sequence of events leading to a bug can be long and complex, and…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-06-15 Doug Woos , Zachary Tatlock , Michael D. Ernst , Thomas E. Anderson

Reversible debuggers help programmers to find the causes of misbehaviours in concurrent programs more quickly, by executing a program backwards from the point where a misbehaviour was observed, and looking for the bug(s) that caused it.…

Programming Languages · Computer Science 2024-08-07 Laura Bocchi , Ivan Lanese , Claudio Antares Mezzina , Shoji Yuen

Reversing a (forward) computation history means undoing the history. In concurrent systems, undoing the history is not performed in a deterministic way but in a causally consistent fashion, where states that are reached during a backward…

Distributed, Parallel, and Cluster Computing · Computer Science 2011-08-18 Luca Cardelli , Cosimo Laneve

Programmers often use an iterative process of hypothesis generation ("perhaps this function is called twice?") and hypothesis testing ("let's count how many times this breakpoint fires") to understand the behavior of unfamiliar or…

Programming Languages · Computer Science 2026-04-14 Shardul Chiplunkar , Clément Pit-Claudel

Reversible debuggers and process replay have been developed at least since 1970. This vision enables one to execute backwards in time under a debugger. Two important problems in practice are that, first, current reversible debuggers are…

Programming Languages · Computer Science 2017-04-03 Kapil Arya , Tyler Denniston , Ariel Rabkin , Gene Cooperman

In a reversible language, any forward computation can be undone by a finite sequence of backward steps. Reversible computing has been studied in the context of different programming languages and formalisms, where it has been used for…

Programming Languages · Computer Science 2018-06-20 Ivan Lanese , Naoki Nishida , Adrián Palacios , Germán Vidal

Debuggers are a popular reverse engineering and tampering tool. Self-debugging is an effective technique for applications to defend themselves against hostile debuggers. In penetration tests on state-of-the-art self-debugging, we observed…

Cryptography and Security · Computer Science 2020-11-02 Bert Abrath , Bart Coppens , Ilja Nevolin , Bjorn De Sutter

This paper illustrates how a Prolog program, using chronological backtracking to find a solution in some search space, can be enhanced to perform intelligent backtracking. The enhancement crucially relies on the impurity of Prolog that…

Artificial Intelligence · Computer Science 2007-05-23 Maurice Bruynooghe

Time-traveling debuggers offer the promise of simplifying debugging by letting developers freely step forwards and backwards through a program's execution. However, web applications present multiple challenges that make time-travel…

Programming Languages · Computer Science 2018-10-30 John Vilk , Emery D. Berger , James Mickens , Mark Marron

Reversible debugging is becoming increasingly popular for locating the source of errors. This technique proposes a more natural approach to debugging, where one can explore a computation from the observable misbehaviour backwards to the…

Programming Languages · Computer Science 2022-06-22 Germán Vidal

Algorithms are ways of mapping problems to solutions. An algorithm is invertible precisely when this mapping is injective, such that the initial problem can be uniquely inferred from its solution. While invertible algorithms can be…

Programming Languages · Computer Science 2022-12-08 Joachim Tilsted Kristensen , Robin Kaarsgaard , Michael Kirkedal Thomsen

Debugging is an essential process with a large share of the development effort, being a relentless quest for offensive code through tracing, inspection and iterative running sessions. Probably every developer has been in a situation with a…

Software Engineering · Computer Science 2021-08-05 Anthony Savidis , Vangelis Tsiatsianas

This paper presents a logic based approach to debugging Java programs. In contrast with traditional debugging we propose a debugging methodology for Java programs using logical queries on individual execution states and also over the…

Programming Languages · Computer Science 2007-05-23 Hani Girgis , Bharat Jayaraman

Debugging lazy functional programs poses serious challenges. In support of the "stop, examine, and resume" debugging style of imperative languages, some debugging tools abandon lazy evaluation. Other debuggers preserve laziness but present…

Programming Languages · Computer Science 2011-08-25 Stephen Chang , John Clements , Eli Barzilay , Matthias Felleisen

Most modern (classical) programming languages support recursion. Recursion has also been successfully applied to the design of several quantum algorithms and introduced in a couple of quantum programming languages. So, it can be expected…

Logic in Computer Science · Computer Science 2018-12-11 Zhaowei Xu , Mingsheng Ying , Shenggang Ying

Researchers have developed numerous debugging approaches to help programmers in the debugging process, but these approaches are rarely used in practice. In this paper, we investigate how programmers debug their code and what researchers…

Software Engineering · Computer Science 2021-03-24 Thomas Hirsch , Birgit Hofer

Voltage peaks on a conventional computer's power lines allow for the well-known dangerous DPA attacks. We show that measurement of a quantum computer's transient state during a computational step reveals information about a complete…

Computational Complexity · Computer Science 2008-01-12 Hans-Rudolf Thomann

The quantum teleportation protocol can be used to probabilistically simulate a quantum circuit with backward-in-time connections. This allows us to analyze some conceptual problems of time travel in the context of physically realizable…

Quantum Physics · Physics 2012-03-06 George Svetlichny
‹ Prev 1 2 3 10 Next ›