Dynamic Slicing Method for Maintenance of Large C Programs
Árpád Beszédes, Tamás Gergely, Zsolt Mihály
Szabó, János Csirik and Tibor Gyimóthy
Different program slicing methods are used for maintenance, reverse
engineering, testing and debugging. Slicing algorithms can be classified as
static slicing and dynamic slicing methods. In several applications 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 backward
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 than the size of the execution history - which
is, in fact, the absolute upper bound of our algorithm).
Keywords: Software maintenence, reverse engineering, dynamic slicing
Back