Why does my program fail? We present a novel and general technique to automatically determine failure causes and conditions, using logical properties over input elements: "The program fails if and only if int(⟨length⟩) > len(⟨payload⟩) holds - that is, the given ⟨length⟩ is larger than the ⟨payload⟩ length." Our AVICENNA prototype uses modern techniques for inferring properties of passing and failing inputs and validating and refining hypotheses by having a constraint solver generate supporting test cases to obtain such diagnoses. As a result, AVICENNA produces crisp and expressive diagnoses even for complex failure conditions, considerably improving over the state of the art with diagnoses close to those of human experts
As software is growing in size and complexity, accompanied by vendors’ increased time-to-market pres...
A program fails. What now? A programmer must debug the program to fix the problem, by completing two...
AbstractProgram debugging is an extremely time-consuming process, and it takes up a large portion of...
Why does my program fail? We present a novel and general technique to automatically determine failur...
Avicenna is a debugging tool designed to automatically determine the causes and conditions of progra...
We introduce Alhazen—an approach that automatically determines the circumstances under which a parti...
© 2015 ACM. During software debugging, a significant amount of effort is required for programmers to...
How can we automatically repair semantic bugs in string-processing programs? A semantic bug is an un...
“Why does my program crash?”—This ever recurring ques-tion of software debugging drives the develope...
Program failures are often caused by invalid inputs, for instance due to input corruption. To obtain...
This dissertation evaluates the following thesis statement: Program analysis techniques can enable a...
Abstract—Consider the execution of a failing program as a sequence of program states. Each state ind...
In this paper, we propose an automated debugging technique that explains a failure by computing its ...
peer reviewedA program fails. Under which circumstances does the failure occur? Starting with a sing...
AbstractDebugging, i.e., fault localization, in case of a detected failure is a time consuming and i...
As software is growing in size and complexity, accompanied by vendors’ increased time-to-market pres...
A program fails. What now? A programmer must debug the program to fix the problem, by completing two...
AbstractProgram debugging is an extremely time-consuming process, and it takes up a large portion of...
Why does my program fail? We present a novel and general technique to automatically determine failur...
Avicenna is a debugging tool designed to automatically determine the causes and conditions of progra...
We introduce Alhazen—an approach that automatically determines the circumstances under which a parti...
© 2015 ACM. During software debugging, a significant amount of effort is required for programmers to...
How can we automatically repair semantic bugs in string-processing programs? A semantic bug is an un...
“Why does my program crash?”—This ever recurring ques-tion of software debugging drives the develope...
Program failures are often caused by invalid inputs, for instance due to input corruption. To obtain...
This dissertation evaluates the following thesis statement: Program analysis techniques can enable a...
Abstract—Consider the execution of a failing program as a sequence of program states. Each state ind...
In this paper, we propose an automated debugging technique that explains a failure by computing its ...
peer reviewedA program fails. Under which circumstances does the failure occur? Starting with a sing...
AbstractDebugging, i.e., fault localization, in case of a detected failure is a time consuming and i...
As software is growing in size and complexity, accompanied by vendors’ increased time-to-market pres...
A program fails. What now? A programmer must debug the program to fix the problem, by completing two...
AbstractProgram debugging is an extremely time-consuming process, and it takes up a large portion of...