[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,


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

More information about the aspectc-user mailing list