Abstract
Even with modern software development methodologies, the actual debugging of source code, i.e., location and identification of errors in the program when errant behavior is encountered during testing, remains a crucial part of software development. To apply model-based diagnosis techniques, which have long been state of the art in hardware diagnosis, for automatic debugging, a model of a given program must be automatically created from the source code. This work describes a model that reflects the execution semantics of the Java language, including exceptions and unstructured control flow, thereby providing unprecedented scope in the application of model-based diagnosis to programs. Besides the structural model building process, a behavioral description of some of the model components is given. Finally, impacts of the modeling decisions on the diagnostic process are considered.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Edmund M. Clarke, Orna Grumberg, and David E. Long. Model Checking and Abstraction. ACMTransactions on Programming Languages and Systems, 16(5):1512–1542, September 1994.
Luca Console, Gerhard Friedrich, and Daniele Theseider Dupré. Model-based diagnosis meets error diagnosis in logic programs. In Proceedings 13 th International Joint Conf. on Artificial Intelligence, pages 1494–1499, Chambery, August 1993.
Patrick Cousot and Radhia Cousot. Abstract interpretation:A unified latice model for static analysis fo programs by construction of approximation of fixpoints. In Proceedings on Principles of Programming Languages, volume 4, Los Angeles, California, January 1977.
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM TOPLAS, 13(4):451–490, 1991.
Alexander Felfernig, Gerhard Friedrich, Dietmar Jannach, and Markus Stumptner. Consistency based diagnosis of configuration knowledge-bases. In Proceedings of the Tenth International Workshop on Principles of Diagnosis, Loch Awe, June 1999.
Jeanne Ferrante, Karl J. Ottenstein, and Joe D. Warren. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems, 9(3):319–349, 1987.
Daniel Jackson. Aspect: Detecting Bugs with Abstract Dependences. ACM Transactions on Software Engineering and Methodology, 4(2):109–145, April 1995.
Richard Johnson and Keshav Pingali. Dependence-based program analysis. In SIGPLAN Conference on Programming Language Design and Implementation, pages 78–89, 1993.
Ulrich Junker. QUICKXPLAIN: Conflict detection for arbitrary constraint propagation algorithms. In IJCAI’01 Workshop on Modelling and Solving problems with constraints, Seattle,WA, USA, August 2001.
Beat Liver. Modeling software systems for diagnosis. In Proceedings of the Fifth International Workshop on Principles of Diagnosis, pages 179–184, New Paltz, NY, October 1994.
J. W. Lloyd. Declarative Error Diagnosis. New Generation Computing, 5:133–154, 1987.
Cristinel Mateis, Markus Stumptner, and Franz Wotawa. Debugging of Java programs using a model-based approach. In Proceedings of the Tenth InternationalWorkshop on Principles of Diagnosis, Loch Awe, Scotland, 1999.
Cristinel Mateis, Markus Stumptner, and Franz Wotawa. Modeling Java Programs for Diagnosis. In Proceedings of the European Conference on Artificial Intelligence (ECAI), Berlin, Germany, August 2000.
Cristinel Mateis, Markus Stumptner, and Franz Wotawa. A Value-Based Diagnosis Model for Java Programs. In Proceedings of the Eleventh InternationalWorkshop on Principles of Diagnosis, Morelia, Mexico, June 2000.
Wolfgang Mayer, Markus Stumptner, Dominik Wieland, and Franz Wotawa. Can AI help to improve debugging substantially? Debugging Experiences with Value-Based Models. In F. van Harmelen, editor, Proc. ECAI, Amsterdam, 2002.
Wolfgang Mayer, Markus Stumptner, Dominik Wieland, and Franz Wotawa. Towards an Integrated Debugging Environment. In F. van Harmelen, editor, Proc. ECAI, Amsterdam, 2002.
Wolfgang Mayer, Markus Stumptner, and Franz Wotawa. Model-based Debugging or How to Diagnose Programs Automatically. In Proceedings of the International Conference on Industrial and Engineering Applications of Artificial Intelligence and Expert Systems, Springer LNAI, Cairns, Australia, June 2002.
Raymond Reiter. Atheory of diagnosis from first principles. Artificial Intelligence, 32(1):57–95, 1987.
Ehud Shapiro. Algorithmic Program Debugging. MIT Press, Cambridge, Massachusetts, 1983.
Saurabh Sinha and Mary Jean Harrold. Analysis and Testing of Programs with Exception Handling Constructs. IEEE Transactions on Software Engineering, 26(9), 2000.
Markus Stumptner. Using design information to identify structural software faults. In Proceedings 14th Australian Joint Conference on Artificial Intelligence, Springer LNAI 2256, pages 473–486, Adelaide, December 2001.
Markus Stumptner and Franz Wotawa. Using Model-Based Reasoning for Locating Faults in VHDL Designs. Künstliche Intelligenz, 14(4):62–67, 2000.
Mark Weiser. Program slicing. IEEETransactions on Software Engineering, 10(4):352–357, July 1984.
Franz Wotawa. On the Relationship between Model-Based Debugging and Program Slicing. Artificial Intelligence, 135(1–2):124–143, 2002.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mayer, W., Stumptner, M. (2002). Modeling Programs with Unstructured Control Flow for Debugging. In: McKay, B., Slaney, J. (eds) AI 2002: Advances in Artificial Intelligence. AI 2002. Lecture Notes in Computer Science(), vol 2557. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36187-1_10
Download citation
DOI: https://doi.org/10.1007/3-540-36187-1_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-00197-3
Online ISBN: 978-3-540-36187-9
eBook Packages: Springer Book Archive