[aspectc-user] "Segmentation fault"
Olaf Spinczyk
Olaf.Spinczyk at informatik.uni-erlangen.de
Fri Aug 5 11:46:59 CEST 2005
Hello Sylvain,
your pointcut check_invariant matches the execution of all member
functions of setAsTree, even the introduced function invariant(). As the
advice for the check_invariant pointcut calls invariant(), the result is
an infinite recursion, which yields a stack overflow.
You can avoid the problem by changing the check_invariant pointcut:
pointcut check_invariant(setAsTree& s) =
(execution("% setAsTree::%(...)" && !"% setAsTree::invariant(...)") ||
construction("setAsTree")) && that(s);
If invariant() calls other member functions of setAsTree, you have to
use cflow to avoid recursive advice invocation:
pointcut check_invariant(setAsTree& s) =
(execution("% setAsTree::%(...)") || construction("setAsTree"))
&& that(s) && !cflow (execution ("% setAsTree::invariant(...)"));
Best regards,
Olaf
sylvain meunier wrote:
> Hello,
> when i execute my project, i obtain a "Segmentation fault", i think
> this is a ac++ generated code error.
> How can i avoid this problem ? ( see setastree.zip for project files )
>
> I use the 0.9.2 ac++ version with CL ( microsoft .net 2003 ).
>
> Best regards
>
> Sylvain Meunier
>------------------------------------------------------------------------
>
>_______________________________________________
>aspectc-user mailing list
>aspectc-user at aspectc.org
>http://www.aspectc.org/mailman/listinfo/aspectc-user
>
More information about the aspectc-user
mailing list