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

  • Authors:
  • Wouter De Borger;Bert Lagaisse;Wouter Joosen

  • Affiliations:
  • KULeuven, Leuven, Belgium;KULeuven, Leuven, Belgium;KULeuven, Leuven, Belgium

  • Venue:
  • Proceedings of the 8th ACM international conference on Aspect-oriented software development
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.