Abstract
To increase modularity, aspect-oriented programming provides 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 ten 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 representation preserving the abstraction level of aspect-oriented source code. We define a debugging model which is aware of aspect-oriented concepts. Based on the model, we implement a user interface with functionalities supporting the identified tasks, like visualizing pointcut evaluation and program composition.
Original language | English |
---|---|
Title of host publication | AOSD '12 |
Subtitle of host publication | Proceedings of the 11th Annual International Conference on Aspect-oriented Software Development |
Place of Publication | New York, NY |
Publisher | Association for Computing Machinery |
Pages | 59-70 |
Number of pages | 12 |
ISBN (Print) | 978-1-4503-1092-5 |
DOIs | |
Publication status | Published - 25 Mar 2012 |
Event | 11th International Conference on Aspect-Oriented Software Development, AOSD 2012 - Potsdam, Germany Duration: 24 Mar 2012 → 30 Mar 2012 Conference number: 11 http://aosd.net/2012/ |
Conference
Conference | 11th International Conference on Aspect-Oriented Software Development, AOSD 2012 |
---|---|
Abbreviated title | AOSD |
Country/Territory | Germany |
City | Potsdam |
Period | 24/03/12 → 30/03/12 |
Internet address |
Keywords
- METIS-296117
- Advanced dispatching
- AOP
- IR-83373
- EWI-22382
- Debugger
- fine-grained intermediate representation
- ne-grained intermediate representation
- Visualization