English
Related papers

Related papers: Transition Watchpoints: Teaching Old Debuggers New…

200 papers

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

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

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

Reversible debuggers have been developed at least since 1970. Such a feature is useful when the cause of a bug is close in time to the bug manifestation. When the cause is far back in time, one resorts to setting appropriate breakpoints in…

Software Engineering · Computer Science 2012-12-21 Kapil Arya , Tyler Denniston , Ana-Maria Visan , Gene Cooperman

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

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

The joint task of bug localization and program repair is an integral part of the software development process. In this work we present DeepDebug, an approach to automated debugging using large, pretrained transformers. We begin by training…

Software Engineering · Computer Science 2021-05-21 Dawn Drain , Colin B. Clement , Guillermo Serrato , Neel Sundaresan

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

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

A new style of temporal debugging is proposed. The new URDB debugger can employ such techniques as temporal search for finding an underlying fault that is causing a bug. This improves on the standard iterative debugging style, which…

Operating Systems · Computer Science 2009-10-28 Ana Maria Visan , Artem Polyakov , Praveen S. Solanki , Kapil Arya , Tyler Denniston , Gene Cooperman

Deterministic replay is a method for allowing complex multitasking real-time systems to be debugged using standard interactive debuggers. Even though several replay techniques have been proposed for parallel, multi-tasking and real-time…

With back-in-time debuggers, developers can explore what happened before observable failures by following infection chains back to their root causes. While there are several such debuggers for object-oriented programming languages, we do…

Software Engineering · Computer Science 2017-01-20 Arian Treffer , Michael Perscheid , Matthias Uflacker

The reliability of concurrent and distributed systems often depends on some well-known techniques for fault tolerance. One such technique is based on checkpointing and rollback recovery. Checkpointing involves processes to take snapshots of…

Programming Languages · Computer Science 2023-11-15 Germán Vidal

Reverse engineering is a complex process essential to software-security tasks such as vulnerability discovery and malware analysis. Significant research and engineering effort has gone into developing tools to support reverse engineers.…

Cryptography and Security · Computer Science 2019-12-03 Daniel Votipka , Seth M. Rabin , Kristopher Micinski , Jeffrey S. Foster , Michelle L. Mazurek

The ability to record and replay program executions with low overhead enables many applications, such as reverse-execution debugging, debugging of hard-to-reproduce test failures, and "black box" forensic analysis of failures in deployed…

Programming Languages · Computer Science 2017-05-18 Robert O'Callahan , Chris Jones , Nathan Froyd , Kyle Huey , Albert Noll , Nimrod Partush

Cyclic debugging requires repeatable executions. As non-deterministic or real-time systems typically do not have the potential to provide this, special methods are required. One such method is replay, a process that requires monitoring of a…

Software Engineering · Computer Science 2009-09-29 Joel Huselius , Henrik Thane , Daniel Sundmark

In this thesis, we introduce the idea of combining symbolic execution with dynamic analysis for reverse engineering. Differently from DSE, we devise an approach where the reverse engineer can use a debugger to drive and inspect a concrete…

Cryptography and Security · Computer Science 2020-07-01 Andrea Fioraldi

Many programmers have had to deal with an overwritten variable resulting for example from an aliasing problem. The culprit is obviously the last write-access to that memory location before the manifestation of the bug. The usual technique…

Software Engineering · Computer Science 2007-05-23 Kazutaka Maruyama , Minoru Terada

A range of methodologies and techniques are available to guide the design and implementation of language extensions and domain-specific languages. A simple yet powerful technique is based on source-to-source transformations interleaved…

Programming Languages · Computer Science 2013-02-01 Zoé Drey , José F. Morales , Manuel V. Hermenegildo

As most parallel and distributed programs are internally non-deterministic -- consecutive runs with the same input might result in a different program flow -- vanilla cyclic debugging techniques as such are useless. In order to use cyclic…

Software Engineering · Computer Science 2007-05-23 Michiel Ronsse , Koen De Bosschere , Jacques Chassin de Kergommeaux
‹ Prev 1 2 3 10 Next ›