Concepts and experiments in computational reflection
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
How debuggers work: algorithms, data structures, and architecture
How debuggers work: algorithms, data structures, and architecture
Aspect-oriented programming using reflection and metaobject protocols
Communications of the ACM
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
An aspect-oriented approach to dynamic adaptation
WOSS '02 Proceedings of the first workshop on Self-healing systems
Mirrors: design principles for meta-level facilities of object-oriented programming languages
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Extending omniscient debugging to support aspect-oriented programming
Proceedings of the 2008 ACM symposium on Applied computing
Debugging and testing middleware with aspect-based control-flow and causal patterns
Proceedings of the 9th ACM/IFIP/USENIX International Conference on Middleware
Debugging aspect-enabled programs
SC'07 Proceedings of the 6th international conference on Software composition
A reflective framework for fine-grained adaptation of aspect-oriented compositions
SC'08 Proceedings of the 7th international conference on Software composition
Toward debugging programs written in multiple domain specific aspect languages
Proceedings of the sixth annual workshop on Domain-specific aspect languages
Inspection of distributed and composed systems
Proceedings of the 8th Middleware Doctoral Symposium
A domain specific aspect language for run-time inspection
Proceedings of the seventh workshop on Domain-Specific Aspect Languages
Two-way traceability and conflict debugging for AspectLTL programs
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
A debug interface for debugging multiple domain specific aspect languages
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
A fine-grained debugger for aspect-oriented programming
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
A generic solution for agile run-time inspection middleware
Middleware'11 Proceedings of the 12th ACM/IFIP/USENIX international conference on Middleware
A generic solution for agile run-time inspection middleware
Proceedings of the 12th International Middleware Conference
The potential of omniscient debugging for aspect-oriented programming languages
Proceedings of the 1st workshop on Comprehension of complex systems
A fine-grained, customizable debugger for aspect-oriented programming
Transactions on Aspect-Oriented Software Development X
Two-Way traceability and conflict debugging for AspectLTL programs
Transactions on Aspect-Oriented Software Development X
Hi-index | 0.00 |
In this paper we present a generic, mirror-based debugging architecture that supports runtime visibility and traceability of aspect oriented (AO) software systems. Runtime visibility supports inspection of an executing AO-system in terms of AO programming abstractions and code artifacts such as (dynamic) aspects, advices, pointcuts, aspect instances and advice applications. Runtime traceability supports inspection of the stack to identify advices that could have been executed, that are being executed, or that may be executed later. Additionally, traceability supports identification and inspection of the pointcut that causes a specific advice. We have created a mirror based architecture that offers introspection support including an aspect-aware breakpoint model for AOP-related runtime events. We introduce the concept of hook frames to trace joinpoints and their advices on the stack. We validate the genericity of our architecture in two instantiations -- JBoss AOP and AspectJ/ABC -- and evaluate both instantiations by applying concrete debugging scenarios.