[aspectc-user] Weaving question
Francisco Afonso
afonsofc at hotmail.com
Tue Sep 27 11:19:38 CEST 2005
Hi,
I wrote some days ago a Logging aspect and it is working fine, but
frequently I have to monitor variables and class instances inside a method
or function. For this I wrote a nop(...) function in the base code that
would be called inside my methods with different number and types of
arguments. As it did not work, I wrote this simple test program to show what
I am trying to do.
//----------- main.cc ----------------------------------
#include <stdio.h>
void nop(...){};
class MyClass {
public:
int doit ( int aa ) {
int bb;
bb = aa * 5;
nop(bb);
return (bb + 2);
}
};
int main() {
MyClass mine;
mine.doit(2);
}
// ---------- nop.ah ----------------------------
#include <stdio.h>
aspect myAspect {
pointcut log (int zz) = args(zz) && call ("void nop(...)");
advice log (zz) : before(int zz) {
printf("The local value is %d \n", zz);
}
};
------------------------------------------------------------
The ac++ program does not generate a call to the advice code at the
"nop(bb)" in main. Why ? Doesn't it conform with the pointcut definition ?
Francisco
More information about the aspectc-user
mailing list