Classifying data dependences in the presence of pointers for program comprehension, testing, and debugging

作者: Alessandro Orso , Saurabh Sinha , Mary Jean Harrold

DOI: 10.1145/1018210.1018212

关键词:

摘要: Understanding data dependences in programs is important for many software-engineering activities, such as program understanding, impact analysis, reverse engineering, and debugging. The presence of pointers can cause subtle complex that be difficult to understand. For example, languages C, an assignment made through a pointer dereference assign value one several variables, none which may appear syntactically statement. In the first part this article, we describe two techniques classifying dereferences. technique classifies based on definition type, use path type. second span. We present empirical results illustrate distribution data-dependence types spans set real C programs. discuss applications classification techniques. First, investigate different ways used facilitate data-flow testing. outline approach uses determine appropriate verification dependences; approach. Second, new slicing computes slices dependences. Based approach, define incremental slice multiple steps. sizes potential usefulness

参考文章(45)
Mary Jean Harrold, Alessandro Orso, Saurabh Sinha, Understanding Data Dependences in the Presence of Pointers Georgia Institute of Technology. ,(2003)
Ravi Sethi, Jeffrey D. Ullman, Alfred V. Aho, Compilers: Principles, Techniques, and Tools ,(1986)
Leeann Bent, Darren C Atkinson, William G Griswold, A Comparative Study of Two Whole Program Slicers for C University of California at San Diego. ,(2001)
Ettore M. Merlo, Giuliano Antoniol, A static measure of a subset of intra-procedural data flow testing coverage based on node coverage conference of the centre for advanced studies on collaborative research. pp. 7- ,(1999)
Boris Beizer, Software Testing Techniques ,(1983)
Hiralal Agrawal, Richard A. DeMillo, Eugene H. Spafford, Dynamic slicing in the presence of unconstrained pointers Proceedings of the symposium on Testing, analysis, and verification. pp. 60- 73 ,(1991) , 10.1145/120807.120813
Donglin Liang, Mary Jean Harrold, Efficient points-to analysis for whole-program analysis foundations of software engineering. ,vol. 24, pp. 199- 215 ,(1999) , 10.1145/318774.318943
William Landi, Barbara G. Ryder, A safe approximate algorithm for interprocedural pointer aliasing ACM SIGPLAN Notices. ,vol. 39, pp. 473- 489 ,(2004) , 10.1145/989393.989440
Hiralal Agrawal, Joseph R. Horgan, Dynamic program slicing programming language design and implementation. ,vol. 25, pp. 246- 256 ,(1990) , 10.1145/93542.93576