Proceedings of the 21st International Conference on Software Engineering (ICSE '99)
Download PDF

Abstract

When one debugs and maintain large software, it is very important to localize the scope of concern to small program portions. Program slicing is a promising technique for identifying portions of interest. There are many research results on the program slicing method. X static slice, which is a collection of program statements possibly affecting a particular variable's value, limits the scope, but the resulting collections are often still large. A dynamic slice, which is a collection of executed program statements affecting a particular variable's value, generally reduces the scope considerably, but its computation is expensive since the execution trace of the program must be recorded. In this paper, we propose a new slicing technique named call-mark slicing that combines static analysis of a program's structure with lightweight dynamic analysis. The data dependences and control dependences among the program statements are statically analyzed beforehand, and procedure/function invocations (calls) are recorded (marked) during execution. From this information, the dynamic dependences of the variables are explored. This call-mark slicing mechanism has been implemented, and the effectiveness of the method has been investigated.
Like what you’re reading?
Already a member?
Get this article FREE with a new membership!