Font Size: a A A

Enabling and supporting the debugging of software failures

Posted on:2012-08-08Degree:Ph.DType:Thesis
University:Georgia Institute of TechnologyCandidate:Clause, James AlexanderFull Text:PDF
GTID:2468390011466390Subject:Computer Science
Abstract/Summary:PDF Full Text Request
Debugging is an expensive activity that can be responsible for a significant part of the cost of software maintenance. This is especially true for today's software, whose complexity, configurability, portability, and dynamism exacerbate debugging challenges. Therefore, techniques for improving the efficiency and effectiveness of debugging can be extremely beneficial in reducing the overall cost of software development and, at the same time, improving software quality. In the last few years, there has been a great deal of research aimed at developing techniques that support automated or semi-automated debugging. These novel techniques have greatly contributed to the collective body of knowledge and have advanced the state of the art. However, an additional leap forward must be taken for automated debugging approaches to be effective when applied in real-life scenarios. Most current debugging approaches suffer from several limitations, including the assumption that developers are able to reliably and easily reproduce the targeted failure and that examining a faulty statement in isolation is always enough for a developer to detect, understand, and fix the corresponding bug.;This dissertation evaluates the following thesis statement: Program analysis techniques can enable and support the debugging of failures in widely-used applications by (1) capturing, replaying, and, as much as possible, anonymizing failing executions and (2) highlighting subsets of failure-inducing inputs that are likely to be helpful for debugging such failures. To investigate this thesis, I developed techniques for recording, minimizing, and replaying executions captured from users' machines, anonymizing execution recordings, and automatically identifying failure-relevant inputs. I then performed experiments to evaluate the techniques in realistic scenarios using real applications and real failures. The results of these experiments demonstrate that the techniques can reduce the cost and difficulty of debugging.
Keywords/Search Tags:Debugging, Software, Failures, Techniques, Cost
PDF Full Text Request
Related items