#ifndef __abstractTrace_ah__ #define __abstractTrace_ah__ #include aspect abstractTrace { pointcut virtual methods() = 0; advice execution(methods()) : before() { printf("ENTRY: %s\n",tjp->signature()); } advice execution(methods()) : after() { printf("EXIT: %s\n",tjp->signature()); } }; #endif /* __abstractTrace_ah__ */