Interprocedural dynamic slicing
1992 (English)In: Programming Language Implementation and Logic Programming, Springer Berlin/Heidelberg, 1992, 370-384 p.Conference paper (Refereed)
This paper presents the first algorithm for interprocedural dynamic slicing. Previous methods for dynamic slicing only considered languages without procedures and procedure calls. This method generates summary information for each procedure call and represents a program as a summary graph of dynamic dependencies. A slice on this graph consists of nodes for all procedure calls of the program that affect the value of a given variable. The size of the information saved by this method is considerably smaller than what is needed by previous methods for dynamic slicing [AH90], since it only depends on the size of the program's execution tree, i.e. the number of executed procedure calls, which is much smaller than the size of a trace of all executed statements. In addition, work space for the temporary graph is needed, proportional to the maximum sum of the sizes of simultaneously active procedures. A program slice can be produced from the interprocedural slice on the graph if a suitable definition of control dependency is used when the summary graph is constructed. The interprocedural dynamic slicing introduced in this paper is being used to improve the bug localization properties of the Generalized Algorithmic Debugging Technique [FGKS91], a method for declarative semi-automatic debugging.
Place, publisher, year, edition, pages
Springer Berlin/Heidelberg, 1992. 370-384 p.
Lecture Notes in Computer Science, ISSN 0302-9743 (print), 1611-3349 (online) ; 631
Electrical Engineering, Electronic Engineering, Information Engineering
IdentifiersURN: urn:nbn:se:liu:diva-110082DOI: 10.1007/3-540-55844-6_148ISBN: 978-3-540-55844-6 (print)ISBN: 978-3-540-47297-1 (online)OAI: oai:DiVA.org:liu-110082DiVA: diva2:742671
4th International Symposium, PLILP'92, Leuven, Belgium, August 26–28, 1992