[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] (no subject)

Hi,

I don't have a complete solution for you to pick up and use but this
aspect kind of does it:

aspect CallGraph {
  int indent =0;
  before(): call(* *(..)) && !within(CallGraph) {
     for (int i=0;i<indent;i++) { System.out.print("  ");}
     System.out.println("> "+thisJoinPointStaticPart);
     indent++;
  }
  after(): call(* *(..))&& !within(CallGraph)  {
    indent--;
  }
}

public class Code {
public static void main(String []argv) {
  new Code().foo();
  new Code().bar();
}

  public void foo() {
    bar();
  }
  public void bar() {
    boo();
  }
  public void boo() {
    System.out.println("Hello World");
  }
}

Running it gives:
$ java Code
> call(void Code.foo())
  > call(void Code.bar())
    > call(void Code.boo())
      > call(void java.io.PrintStream.println(String))
Hello World
> call(void Code.bar())
  > call(void Code.boo())
    > call(void java.io.PrintStream.println(String))
Hello World

Andy

On 15 October 2011 07:19, Shambhavi Joshi <shambhavi.jj@xxxxxxxxx> wrote:
> Hello
>
> I want to design a code for generating a run-time call graph for a
> Java program using AspectJ.
> Can anybody tell me how to go about it?? please its urgent.
> Is there any algorithm available, if yes, then please provide /suggest
> me the same.
>
> Please do reply ASAP
> Shambhavi
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>