A slice reduction method using function activation information
Akira Nishimatsu, Minoru Jihira, Shinji Kusumoto, Katsuro Inoue · Systems and Computers in Japan · 2001
Abstract During debugging or maintenance of large‐scale software, it is useful to be able to restrict the reference range to a part of the program rather than reference the entire program. Program slicing has been proposed as a method to restrict the reference range. A static slice extracts the set of statements that can affect the values of the variables being watched. In many cases, however, the slices include parts that are in fact unrelated, and so the reference range cannot be sufficiently restricted. On the other hand, a dynamic slice can sufficiently restrict the reference range by actually executing the program and then using the dynamic information thus obtained to extract the set of statements which, when executed, may have an effect on the value of the variables being watched. However, considerable time and space are required in order to obtain the dynamic information during program execution. In this paper the authors propose a program slice extraction method which combines the small amount of dynamic information obtained by executing the program with static analysis. Slices extracted using this method are referred to as Call‐Mark slices. When calculating a Call‐Mark slice, first the data dependence relationship and the control dependence relationship in the program are analyzed in a static manner, then the procedures and function call memory during program execution are stored. Then, by clarifying the dynamic dependence relationship in the variables from the above information, slices can be collected more efficiently than in conventional approaches. In addition, the authors use the Call‐Mark slice in a slicing system that was previously developed, and then evaluate its validity. © 2001 Scripta Technica, Syst Comp Jpn, 32(10): 59–68, 2001