Three Approaches to Interprocedural Dynamic Slicing
1993 (English)In: Microprocessing and Microprogramming, ISSN 0165-6074, Vol. 38, no 1-5, 625-636 p.Article in journal (Refereed) Published
The need of maintenance and modification demand that large programs be decomposed into manageable parts. Program slicing is one method for such decomposition. A program slice with respect to a specified variable at some program point consists of those parts of the program that may directly or indirectly affect the value of that variable at the particular program point. This is useful for understanding dependences within programs. A static program slice [Wei84] is computed using static data-and control flow analysis and is valid for all possible executions of the program. Static slices are often impricise, i.e., they contain unnecessarily large parts of the program. Dynamic slices [KL90] [AH90] [however, are precise but are valid only for a single execution of the program. Interprocedural dynamic slices can be computed for programs with procedures.
This paper presents the first three techniques for interprocedural dynamic slicing which deal with procedures/ functions at the abstract level. All three methods first generate summary information for each procedure call 9or function application), then represent a program as a summary graph of dynamic dependences. A slice on this graph consists of vertices for all procedure calls of the program that affect the value of a given variable at the specified program point. The amount of information saved by these methods is considerably less than what is needed by previous methods for dynamic slicing [KL90] [AH90], since it only depends on the size of the program's execution tree, i.e., the number of executed procedure calls, which is smaller than a trace of all executed statements.
The interprocedural dynamic slicing methods introduced here are applicable in at least two areas, program debugging [SKF90] [KSF90] and data flow testing.
Place, publisher, year, edition, pages
Elsevier, 1993. Vol. 38, no 1-5, 625-636 p.
Electrical Engineering, Electronic Engineering, Information Engineering
IdentifiersURN: urn:nbn:se:liu:diva-110101DOI: 10.1016/0165-6074(93)90203-WOAI: oai:DiVA.org:liu-110101DiVA: diva2:742757
Euromicro 93 Open System Design: Hardware, Software and Applications, Barcelona, 6–9 September 1993