Skip to main content

Modeling Programs with Unstructured Control Flow for Debugging

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 2557))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Article  Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Article  Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Article  MATH  Google Scholar 

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

    Article  Google Scholar 

  8. Richard Johnson and Keshav Pingali. Dependence-based program analysis. In SIGPLAN Conference on Programming Language Design and Implementation, pages 78–89, 1993.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. J. W. Lloyd. Declarative Error Diagnosis. New Generation Computing, 5:133–154, 1987.

    Article  MATH  MathSciNet  Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. Wolfgang Mayer, Markus Stumptner, Dominik Wieland, and Franz Wotawa. Towards an Integrated Debugging Environment. In F. van Harmelen, editor, Proc. ECAI, Amsterdam, 2002.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. Raymond Reiter. Atheory of diagnosis from first principles. Artificial Intelligence, 32(1):57–95, 1987.

    Article  MATH  MathSciNet  Google Scholar 

  19. Ehud Shapiro. Algorithmic Program Debugging. MIT Press, Cambridge, Massachusetts, 1983.

    Google Scholar 

  20. Saurabh Sinha and Mary Jean Harrold. Analysis and Testing of Programs with Exception Handling Constructs. IEEE Transactions on Software Engineering, 26(9), 2000.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. Markus Stumptner and Franz Wotawa. Using Model-Based Reasoning for Locating Faults in VHDL Designs. Künstliche Intelligenz, 14(4):62–67, 2000.

    Google Scholar 

  23. Mark Weiser. Program slicing. IEEETransactions on Software Engineering, 10(4):352–357, July 1984.

    Google Scholar 

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

    MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics