Forward Computation of Dynamic Slices of C Programs
Árpád Beszédes, Tamás Gergely, Zsolt Mihály
Szabó, Csaba Faragó and Tibor Gyimóthy
Different program slicing methods are used for debugging, testing,
reverse engineering and maintenance. Slicing algorithms can be classified
as static slicing and dynamic slicing methods. In applications such as
debugging the computation of dynamic slices is more preferable since it
can produce more precise results. In this paper we introduce a new forward
global method for computing dynamic slices of C programs. In parallel to
the program execution the algorithm determines the dynamic slices for any
program instruction. We also propose a solution for some problems specific
to the C language (such as pointers and function calls). The main advantage
of our algorithm is that it can be applied to real size C programs, because
its memory requirements are proportional to the number of different memory
locations used by the program (which is in most cases far smaller then
the size of the execution history - which is, in fact, the absolute upper
bound of our algorithm).
Back