Publication

Automatic generation of program execution that reaches a given failure point

Related publications (33)

Execution Synthesis: A Technique for Automating the Debugging of Software

Cristian Zamfir

Debugging real systems is hard, requires deep knowledge of the target code, and is time-consuming. Bug reports rarely provide sufficient information for debugging, thus forcing developers to turn into detectives searching for an explanation of how the prog ...
EPFL2013

Automated Debugging for Arbitrarily Long Executions

George Candea, Edouard Bugnion, Johannes Kinder, Cristian Zamfir, Baris Can Cengiz Kasikci

One of the most energy-draining and frustrating parts of software development is playing detective with elusive bugs. In this paper we argue that automated post-mortem debugging of failures is feasible for real, in-production systems with no runtime record ...
2013

Robust Software Partitioning with Multiple Instantiation

Daniel Kuhn, Wolfram Wiesemann

The purpose of software partitioning is to assign code segments of a given computer program to a range of execution locations such as general-purpose processors or specialist hardware components. These execution locations differ in speed, communication cha ...
2012

Striking a New Balance Between Program Instrumentation and Debugging Time

Willy Zwaenepoel, Ricardo Bianchini, Olivier Crameri

Although they are helpful in many cases, state-of-the-art bug reporting systems may impose excessive overhead on users, leak private information, or provide little help to the developer in locating the problem. In this paper, we explore a new approach to b ...
Acm Order Department, P O Box 64145, Baltimore, Md 21264 Usa2011

Efficient Modelling and Simulation Methodology for the Design of Heterogeneous Mixed-Signal Systems on Chip

Torsten Mähne

Systems on Chip (SoCs) and Systems in Package (SiPs) are key parts of a continuously broadening range of products, from chip cards and mobile phones to cars. Besides an increasing amount of digital hardware and software for data processing and storage, the ...
EPFL2011

Finding Almost-Invariants in Distributed Systems

Dejan Kostic, Marco Canini, Maysam Yabandeh

It is notoriously hard to develop dependable distributed systems. This is partly due to the difficulties in foreseeing various corner cases and failure scenarios while implementing a system that will be deployed over an asynchronous network. In contrast, r ...
2011

Querypoint : Moving Backwards on Wrong Values in the Buggy Execution

Claude Petitpierre, Salman Mirghasemi

As developers debug, they often have to seek the origins of wrong values they see in their debugger. This search must be performed backwards in time since the code causing the wrong value is executed before the wrong value appears. Therefore, locating the ...
2011

Execution Synthesis: A Technique for Automated Software Debugging

George Candea, Cristian Zamfir

Debugging real systems is hard, requires deep knowledge of the code, and is time-consuming. Bug reports rarely provide sufficient information, thus forcing developers to turn into detectives searching for an explanation of how the program could have arrive ...
2010

Querypoint Debugging

Claude Petitpierre, Salman Mirghasemi

To fix a bug, software developers have to examine the bug-gy execution to locate defects. They employ different ap-proaches (e.g., setting breakpoints, inserting printing statements in the code) to navigate over buggy execution and inspect program state at ...
2010

Rapid Design Space visualisation through hardware/software partitioning

Daniel Kuhn

This paper introduces the 3SP Design Space Exploration System. 3SP automatically quantifies acceleration opportunities for programs across a wide range of heterogeneous architectures to allow designers to identify promising implementation platforms before ...
IEEE2009

Graph Chatbot

Chat with Graph Search

Ask any question about EPFL courses, lectures, exercises, research, news, etc. or try the example questions below.

DISCLAIMER: The Graph Chatbot is not programmed to provide explicit or categorical answers to your questions. Rather, it transforms your questions into API requests that are distributed across the various IT services officially administered by EPFL. Its purpose is solely to collect and recommend relevant references to content that you can explore to help you answer your questions.