Skip to main content

Debugging Aspect-Enabled Programs

  • Conference paper
Software Composition (SC 2007)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4829))

Included in the following conference series:

Abstract

The ability to debug programs composed using aspect-oriented programming (AOP) techniques is critical to the adoption of AOP. Nevertheless, many AOP systems lack adequate support for debugging, making it difficult to diagnose faults and understand the program’s composition and control flow. We present an AOP debug model that characterizes AOP-specific program composition techniques and AOP-specific program behaviors, and relates them to the AOP-specific faults they induce. We specify debugging criteria that we feel all AOP systems should support and compare how several AOP systems measure up to this ideal.

We explain why AOP composition techniques, particularly dynamic and binary weaving, hinder source-level debugging, and how results from related research on debugging optimized code help solve the problem. We also present Wicca, the first dynamic AOP system to support full source-level debugging. We demonstrate how Wicca’s powerful interactive debugging features allow a programmer to quickly diagnose faults in the base program behavior or AOP-specific behavior.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aho, A., Lam, M., Sethi, R., Ullman, J.: Principles, Techniques, and Tools, 2nd edn. Addison-Wesley, Reading (2007)

    Google Scholar 

  2. Alexander, R., Bieman, J.M., Andrews, A.: Towards the Systematic Testing of Aspect-Oriented Programs. Tech Rep CS-4-105. Dept. of CS, Colorado State Univ. (March 2004)

    Google Scholar 

  3. Aussmann, S., Haupt, M.: Axon – Dynamic AOP through Runtime Inspection and Monitoring. In: ASARTI 2003. Proc. of the Wkshp. on Advancing the State-of-the-Art in Runtime Inspection (July 2003)

    Google Scholar 

  4. Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, J., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Optimising AspectJ. In: PLDI 2005. Proc. of Prog. Language Design and Implementation (June 2005)

    Google Scholar 

  5. Van Baalen, J., Robinson, P., Lowry, M., Pressburger, T.: Explaining Synthesized Software. In: ASE 1998. Proc. of Automated Software Eng. (October 1998)

    Google Scholar 

  6. Baker, J., Hsieh, W.: Runtime aspect weaving through metaprogramming. In: AOSD 2002. Proc. of Aspect-Oriented Software Development (April 2002)

    Google Scholar 

  7. Bonér, J.: AspectWerkz — dynamic AOP for Java. In: AOSD 2004. Invited talk at Aspect-Oriented Software Development (March 2004)

    Google Scholar 

  8. Ceccato, M., Tonella, P., Ricca, F.: Is AOP code easier or harder to test than OOP code? In: WTAOP 2005. Proc. of the Wkshp. on Testing Aspect-Oriented Programs (March 2005)

    Google Scholar 

  9. Douence, R., Fritz, T., Loriant, N., Menaud, J.-M., Segura-Devillechaise, M., Südholt, M.: An expressive aspect language for system applications with Arachne. In: AOSD 2005. Proc. of Aspect-Oriented Software Development (March 2005)

    Google Scholar 

  10. Eaddy, M., Aho, A.: Statement Annotations for Fine-Grained Advising. In: RAM-SE 2006. Proc. of the Wkshp. on Reflection, AOP, and Meta-data for Software Evol. (July 2006)

    Google Scholar 

  11. Eaddy, M., Aho, A., Hu, W., McDonald, P., Burger, J.: Debugging Woven Code. Tech Rep. CUCS-035-06. Dept. of CS, Columbia Univ. (September 2006)

    Google Scholar 

  12. Eaddy, M., Feiner, S.: Multi-Language Edit-and-Continue for the Masses. Tech Rep CUCS-015-05. Dept. of CS, Columbia Univ. (April 2005)

    Google Scholar 

  13. Elrad, T., Filman, R., Bader, A.: Aspect-oriented programming: Introduction. Communications of the ACM 44(10), 29–32 (2001)

    Article  Google Scholar 

  14. Faith, R.: Debugging Programs after Structure-Changing Transformation. Ph.D. dissertation, CS Dept., Univ. of North Carolina (December 1997)

    Google Scholar 

  15. Filman, R., Friedman, D.: Aspect-Oriented Programming is Quantification and Obliviousness. In: OOPSLA Wkshp. on Advanced Separation of Concerns (October 2000)

    Google Scholar 

  16. Grawehr, F.P., Alonso, G.: A Dynamic AOP-Engine for .NET. Tech Rep 445. Dept. of CS, ETH Zürich (March 2004)

    Google Scholar 

  17. Griswold, W.G., Yuan, J., Kato, Y.: Exploiting the Map Metaphor in a Tool for Software Evolution. In: ICSE 2001. Proc. of the Intl. Conf. on Software Eng. (May 2001)

    Google Scholar 

  18. Haupt, M., Mezini, M.: Micro-Measurements for Dynamic Aspect-Oriented Systems. In: Weske, M., Liggesmeyer, P. (eds.) NODe 2004. LNCS, vol. 3263, pp. 81–96. Springer, Heidelberg (2004)

    Google Scholar 

  19. Haupt, M., Mezini, M., Bockisch, C., Dinkelaker, T., Eichberg, M., Krebs, M.: An Execution Layer for Aspect-Oriented Prog. Languages. In: VEE 2005. Proc. of Virtual Execution Environments (June 2005)

    Google Scholar 

  20. Hennessy, J.: Symbolic Debugging of Optimized Code. ACM Transactions on Prog. Languages and Systems 4(3), 323–344 (1982)

    Article  MATH  Google Scholar 

  21. Hilsdale, E., Hugunin, J.: Advice weaving in AspectJ. In: AOSD 2004 (March 2004)

    Google Scholar 

  22. Hoare, A.R.: Assertions: a personal perspective. In: Software pioneers: contributions to software engineering, pp. 356–366. Springer, Heidelberg (2002)

    Google Scholar 

  23. Hölzle, U., Chambers, C., Ungar, D.: Debugging Optimized Code with Dynamic Deoptimization. In: PLDI 2005. Proc. of Prog. Language Design and Implementation (July 1992)

    Google Scholar 

  24. Hugunin, J.: The next steps for aspect-oriented programming languages (in Java). In: Proc. of Wkshp. on New Visions for Software Design & Prod.: Research & Apps. (December 2001)

    Google Scholar 

  25. Jackson, A., Clarke, S.: SourceWeave.NET: Source-level cross-language aspect-oriented programming. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, Springer, Heidelberg (2004)

    Google Scholar 

  26. Lippert, M., Lopes, C.V.: A Study on Exception Detection and Handling Using Aspect-Oriented Programming. In: ICSE 2000. Proc. of the Intl. Conf. Software Eng. (June 2000)

    Google Scholar 

  27. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  28. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. TR SPL97-008 P9710042, Xerox PARC (February 1997)

    Google Scholar 

  29. Kumar, N., Childers, B., Soffa, M.L.: Tdb: a source-level debugger for dynamically translated programs. In: AADEBUG 2005. Proc. of the Intl. Symp. on Automated and Analysis-Driven Debugging (September 2005)

    Google Scholar 

  30. Meyer, B.: Object-Oriented Software Construction. Prentice Hall, New Jersey (1997)

    MATH  Google Scholar 

  31. Nicoara, A., Alonso, G.: Dynamic AOP with PROSE. In: ASMEA 2005. Proc. of the Wkshp. on Adaptive and Self-Managing Enterprise Applications (June 2005)

    Google Scholar 

  32. Redwine, S., Riddle, W.: Software technology maturation. In: SE 1985. Proc. of Software Eng. (August 1985)

    Google Scholar 

  33. Tice, C., Graham, S.: OPTVIEW: A New Approach for Examining Optimized Code. In: PASTE 1998. Wkshp. on Program Analysis for Software Tools and Eng. (June 1998)

    Google Scholar 

  34. Zellweger, P.T.: Interactive Source-Level Debugging of Optimized Programs. Ph.D. dissertation, CS Dept., Univ. of California, Berkeley. Also published as Xerox PARC Tech. Rep. CSL-84-5 (May 1984)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Markus Lumpe Wim Vanderperren

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Eaddy, M., Aho, A., Hu, W., McDonald, P., Burger, J. (2007). Debugging Aspect-Enabled Programs. In: Lumpe, M., Vanderperren, W. (eds) Software Composition. SC 2007. Lecture Notes in Computer Science, vol 4829. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77351-1_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-77351-1_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-77350-4

  • Online ISBN: 978-3-540-77351-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics