Delta Debugger for C programs
Course type | B.Sc. Thesis |
---|---|
Instructors | Christian Schilling |
Credits | 12 |
Problem
Consider a program P and a test input T such that there is an unexpected behavior of P applied to T. We want to find out the reason why this behavior has occurred.
Usually, the behavior is an error and we want to find the bug in the implementation which lead to that error.
A typical problem in practice is that the example might be very big, so the analysis is hard. A possible approach to simplify the example is called delta debugging.Delta debugging
Given an example and a set of simplification rules, a delta debugger applies the rules to the example as long as possible.
The output will be an example which
- is (locally) minimal with respect to the set of rules,
- still has the same behavior (i.e., the bug).
Task
We have a Java framework with a lot of tools which work on C programs (e.g., for program verification) and already have a working implementation of a delta debugger for a different type of input (an automaton for our automata library).
You implement the general architecture of a delta debugger for C programs in our Java framework. This means given a C program, minimize it with respect to a set of rules.
Afterward, you develop and implement some possible rules to make it applicable.
In principle, you need not have any knowledge about the C programming language. You write the delta debugger in Java, while the C programs are only the input to your tool. For more sophisticated rules, you need to aquire some basic knowledge about C.