Debugging, i.e., removing faults from programs, comprises three parts. Fault detection is used to find a misbehavior. Within
fault localization the root-cause for the detected misbehavior is searched for. And finally, during repair the responsible
parts of the program are replaced by others in order to get rid of the detected misbehavior. In this paper we focus on fault
localization which is based on abstract dependencies that are used by the Aspect system [1] for detecting faults. Abstract
dependencies are relations between variables of a program. We say that a variable x depends on a variable y iff a new value
for y may causes a new value for x. For example, the assignment statement x = y + 1; implies such a dependency relation. Every
time we change the value of y the value of x is changed after executing the statement. Another example which leads to the
same dependency is the following program fragment:
if ( y < 10) then x = 1; else x = 0;
The work described in this paper has been supported by the Austrian Science Fund (FWF) project P15265-INF and the Higher Education
Commission(HEC), Pakistan.