Modeling and Diagnosing Buggy Programs with Points-To Analysis

Article Preview

Abstract:

The main idea behind this paper is the use of cheap one-level pointer analysis information to achieve better results in the context of dependency-based program debugging. We model java programs by a points-to graph with annotations in the form of constraints, derive the inner logical representation deriving from this model, and use them to debug faults in input programs. Our analysis and the empirical results show that we can achieve better results in the context of dependency-based software debugging.

You might also be interested in these eBooks

Info:

Periodical:

Advanced Materials Research (Volumes 433-440)

Pages:

2927-2932

Citation:

Online since:

January 2012

Export:

Price:

Permissions CCC:

Permissions PLS:

Сopyright:

© 2012 Trans Tech Publications Ltd. All Rights Reserved

Share:

Citation:

[1] Mark Weiser. Programmers use slices when debugging. Communications of the ACM, 25(7): 446–452, July (1982).

DOI: 10.1145/358557.358577

Google Scholar

[2] Raymond Reiter. A theory of diagnosis from first principle. Artifical Intelligence, 32(1): 57-95, (1987).

Google Scholar

[3] Johan de Kleer and Brian C. Williams. Diagnosing multiple faults. Artifical Intelligence, 32(1): 97-130, (1987).

DOI: 10.1016/0004-3702(87)90063-4

Google Scholar

[4] Markus Stumptner and Franz Wotawa, `A Survey of Intelligent Debugging', in The European Journal on Artificial Intelligence (AICOM) , Vol. 11, Num. 1, (1998).

Google Scholar

[5] Cristinel Mateis, Markus Stumptner and Franz Wotawa, `Modeling Java Programs for Diagnosis', 14th European Conference on Artificial Intelligence, Berlin, Germany, (2000).

Google Scholar

[6] Cristinel Mateis, Markus Stumptner and Franz Wotawa, `A Value-Based Diagnosis Model for Java Programs', Eleventh International Workshop on Principles of Diagnosis (DX), Morelia, Mexico, (2000).

Google Scholar

[7] Markus Stumptner and Dominik Wieland and Franz Wotawa, `Comparing Two Models for Software Debugging', in Proceedings of the Joint German/Austrian Conference on Artificial Intelligence (KI), Vienna, Austria, (2001).

DOI: 10.1007/3-540-45422-5_25

Google Scholar

[8] Markus Stumptner and Franz Wotawa. Using Model-Based Reasoning for Locating Faults in VHDL Designs. K¨unstliche Intelligenz, 14(4): 62–67, (2000).

Google Scholar

[9] Manuvir Das. Unification-based Pointer Analysis with Directional Assignments, in PLDI 2000, Vancouver, Canada, (2000).

Google Scholar

[10] B. Steensgaard. Points-to analysis in almost linear time. In Conference Record of the Twenty-Third ACM Symposium on Principles of Programming Languages, (1996).

DOI: 10.1145/237721.237727

Google Scholar

[11] F. Wotawa. On the Relationship between Model-Based Debugging and Program Slicing. Artificial Intelligence, 135(1–2): 124–143, (2002).

DOI: 10.1016/s0004-3702(01)00161-8

Google Scholar

[12] R. Chen, F. Wotawa. Diagnosing Program Errors with Light-weighted Specifications, LNAI 4031, 639-649, 2006, Springer.

DOI: 10.1007/11779568_69

Google Scholar

[13] Ehud Shapiro. Algorithmic Program Debugging. MIT Press, Cambridge, Massachusetts, (1983).

Google Scholar

[14] Daniel Jackson. Aspect: Detecting Bugs with Abstract Dependences. ACM Transactions on Software Engineering and Methodology, 4(2): 109–145, April (1995).

DOI: 10.1145/210134.210135

Google Scholar

[15] D. Wieland. Model-Based Debugging of Java Programs Using Dependencies. PhD thesis, Vienna Univ. of Tech., Nov. (2001).

Google Scholar

[16] James A. Jones and Mary Jean Harrold. Empirical evaluation of the tarantula automatic fault-localization technique. In Proceedings of theIEEE/ACM International Conference on Automated Software Engineering (ASE 2005), pages 273-282, Long Beach, CA, November (2005).

DOI: 10.1145/1101908.1101949

Google Scholar

[17] A. �Groce. Error explanation with distance metrics. In TACAS, volume 2988 of Lecture Notes in Computer Science. Springer, (2004).

Google Scholar