Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Tracing a method call


Mohan,

I am also at a loss as to what you are trying to do.
- Normally one uses the execution() pointcut with before/after advice and pick out every (useful) method in the program. That way you can build up the flow along with the context e.g. arguments
- With the call() pointcut you can use thisJoinPoint to identify the target method and thisEnclosingJoinPointStaticPart to identify the invoker
- The call() pointcut can be useful when you don't control the target class and hence the join point matched by execution() is not available for weaving.

Matthew Webster
AOSD Project
Java Technology Centre, MP146
IBM Hursley Park, Winchester,  SO21 2JN, England
Telephone: +44 196 2816139 (external) 246139 (internal)
Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
http://w3.hursley.ibm.com/~websterm/



"Mohan Radhakrishnan" <radhakrishnan.mohan@xxxxxxxxx>
Sent by: aspectj-users-bounces@xxxxxxxxxxx

17/12/2006 05:40

Please respond to
aspectj-users@xxxxxxxxxxx

To
aspectj-users@xxxxxxxxxxx
cc
Subject
Re: [aspectj-users] Tracing a method call





Hi,
        I was thinking of tracing the flow of method calls from beginning to end.
(beginning)
method 1 -->
               method 1.1
               method 1.2 -->
                                   method 1.2.1-->
                                                        method 1.2.1.1(end)
 
Is it possible to bore into the api to trace something like this if we know only that method 1 exists ?
 
 
Thanks,
Mohan


On 12/3/06, Alexandru Popescu <the.mindstorm.mailinglist@xxxxxxxxx> wrote:
On 12/3/06, Mohan Radhakrishnan <radhakrishnan.mohan@xxxxxxxxx > wrote:
> Hi,
>      Can we trace a method call through the codebase using pointcuts like
> this
>
>   pointcut callStaticMethod ():
>          call (* com.test.MyObject.callStaticMethod (..));
>
>   before(): callStaticMethod() {
>    System.out.println( thisJoinPointStaticPart.
>                    getSourceLocation().getWithinType() );
>    System.out.println( thisJoinPointStaticPart.
>                    getSignature().getDeclaringTypeName() );
>   }
>
>
> Assume that there is a call line like this. method1 -> method2 -> method3
> etc. We don't have annotations declared on these
> methods.
>
> If each method calls only one other method then we can trace the call line ?
> Is this possible ?
>

I am not sure I understand what you intend to do: to track method3
invocation only when this happens in the flow of method2 called from
method1? If so, then look for the cflow/cflowbelow pointcuts.

./alex
--
.w( the_mindstorm )p.

> Thanks,
> Mohan
> _______________________________________________
> aspectj-users mailing list
>
aspectj-users@xxxxxxxxxxx
>
https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
>
_______________________________________________
aspectj-users mailing list

aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users


Back to the top