A generic and reflective debugging architecture to support runtime visibility and traceability of aspects

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 (dyn...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: De Borger, Wouter, Lagaisse, Bert, Joosen, Wouter
Format: Tagungsbericht
Sprache:eng
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung: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.