Improving the Preciseness of Dependence Analysis Using Exception Analysis

Program dependence analysis is an analysis technique to identify and determine various program dependences in program source codes. It is an important approach for testing, understanding, maintaining programs. Exception handling mechanism in modern programming languages is a technology that can improve software robustness, but failures to account for the effects of exception handling mechanism in dependence analysis can result in incorrect analysis result. In this paper, we extend previous work on dependences analysis using exception analysis to analyze the dependences of C++ programs with exception handling constructs. The improved exception control flow graph we propose, IECFG, is a novel representation of C++ program's intra-functional control flow. The IECFG is more precise than traditional CFG in representing the programs with exception handling constructs. We introduce how to construct the program dependence graph (PDG) and the system dependence graph (SDG) based on the IECFG. With the help of this representation, we can obtain more precise information than most previous methods we know

[1]  Saurabh Sinha,et al.  Analysis of programs with exception-handling constructs , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[2]  Saurabh Sinha,et al.  Analysis and Testing of Programs with Exception Handling Constructs , 2000, IEEE Trans. Software Eng..

[3]  Bjarne Stroustrup,et al.  The C++ Programming Language: Special Edition , 2000 .

[4]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[5]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[6]  ' ChenZhen-qiang,et al.  Dependence Analysis Based on Dynamic Slicing for Debugging , 2022 .

[7]  Louise E. Moser Data Dependency Graphs for Ada Programs , 1990, IEEE Trans. Software Eng..

[8]  John B. Goodenough,et al.  Exception handling: issues and a proposed notation , 1975, CACM.

[9]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[10]  Gregg Rothermel,et al.  System-dependence-graph-based slicing of programs with arbitrary interprocedural control flow , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[11]  Susan Horwitz,et al.  Slicing java programs that throw and catch exceptions , 2003, PEPM '03.

[12]  Baowen Xu,et al.  An approach to analyzing dependency of concurrent programs , 2000, Proceedings First Asia-Pacific Conference on Quality Software.