A fine-grained, customizable debugger for aspect-oriented programming

Haihan Yin, G.T. Leavens (Editor), S. Chiba (Editor), Christoph Bockisch, Mehmet Aksit, E. Tanter (Editor)

    Research output: Contribution to journalArticleAcademicpeer-review

    1 Citation (Scopus)


    To increase modularity, many aspect-oriented programming languages provide a mechanism based on implicit invocation: An aspect can influence runtime behavior of other modules without the need that these modules refer to the aspect. Recent studies show that a significant part of reported bugs in aspect-oriented programs are caused exactly by this implicitness. These bugs are difficult to detect, because aspect- oriented source code elements and their locations are transformed or even lost after compilation. We investigate four dedicated fault models and identify 11 tasks that a debugger should be able to perform for detecting aspect-orientation-specific faults. We show that existing debuggers are not powerful enough to support all identified tasks, because the aspect- oriented abstractions are lost after compilation. This paper describes the design and implementation of a debugger for aspect-oriented languages using a dedicated intermediate represen- tation preserving the abstraction level of aspect-oriented source code. This is based on a model of the more general formalism of advanced dispatching. Based on this model, we implement a user interface with functionalities supporting the identified tasks, such as visualizing point- cut evaluation and program composition. Due to the generality of our intermediate representation, our debugger can be used for a wide range of programming languages. To account for the syntactic differences among these languages, we allow language designers to customize the textual representations on the user interface.
    Original languageUndefined
    Pages (from-to)1-38
    Number of pages38
    JournalTransactions on aspect-oriented software development
    Publication statusPublished - 2013


    • customizable visualization
    • EWI-23201
    • CR-D.2.3
    • Aspect Oriented Programming
    • METIS-296372
    • IR-85425
    • Debugging

    Cite this