Fault Localization Based on Abstract Dependencies
暂无分享,去创建一个
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.
[1] Markus Stumptner,et al. Model-Based Diagnosis of Hardware Designs , 1999, Artif. Intell..
[2] Raymond Reiter,et al. A Theory of Diagnosis from First Principles , 1986, Artif. Intell..
[3] Daniel Jackson. Aspect: detecting bugs with abstract dependences , 1995, TSEM.