[Soot-list] Soot-list Digest, Vol 51, Issue 29

Eric Bodden eric.bodden at mail.mcgill.ca
Sun Aug 2 07:33:00 EDT 2009


Hi Peng.

This, to me, looks like a bug in the type assigner. Can you try to run
Soot with the following command-line option and see if you still get
the same exception?

-p jb.tr use-older-type-assigner:true

This will us a different implementation for the type assigner.

Also, can you please open a bug report
https://svn.sable.mcgill.ca/bugzilla/ and attach to the report the
AspectJ program and the command line that you use to run Soot?

Thanks,
Eric

2009/8/1 LIU Peng <lpxz at ust.hk>:
> Hello :
>     I met with an exception while analyzing programs written using Aspectj.
> I find where it bring me an exception, But I do not why such case happens.
> Can you help me understand it?
>
> Trace:
>
> java.lang.RuntimeException: Attempt to create VarNode of type bottom_type
>        at soot.jimple.spark.pag.VarNode.<init>(VarNode.java:90)
>        at soot.jimple.spark.pag.LocalVarNode.<init>(LocalVarNode.java:43)
>        at soot.jimple.spark.pag.PAG.makeLocalVarNode(PAG.java:499)
>        at
> soot.jimple.spark.builder.MethodNodeFactory.caseLocal(MethodNodeFactory.java:217)
>        at soot.jimple.internal.JimpleLocal.apply(JimpleLocal.java:135)
>        at
> soot.jimple.spark.builder.MethodNodeFactory$1.caseAssignStmt(MethodNodeFactory.java:75)
>        at soot.jimple.internal.JAssignStmt.apply(JAssignStmt.java:236)
>        at
> soot.jimple.spark.builder.MethodNodeFactory.handleStmt(MethodNodeFactory.java:67)
>        at soot.jimple.spark.pag.MethodPAG.buildNormal(MethodPAG.java:167)
>        at soot.jimple.spark.pag.MethodPAG.build(MethodPAG.java:133)
>        at
> soot.jimple.spark.solver.OnFlyCallGraph.processReachables(OnFlyCallGraph.java:64)
>        at soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:56)
>        at
> soot.jimple.spark.solver.PropWorklist.handleVarNode(PropWorklist.java:125)
>        at soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:54)
>        at
> soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:152)
>        at soot.SceneTransformer.transform(SceneTransformer.java:39)
>        at soot.Transform.apply(Transform.java:89)
>        at soot.RadioScenePack.internalApply(RadioScenePack.java:58)
>        at
> soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:48)
>        at soot.Pack.apply(Pack.java:114)
>        at soot.PackManager.runWholeProgramPacks(PackManager.java:409)
>        at soot.PackManager.runPacks(PackManager.java:330)
>
>
> I find the source of the exception:
> l0
> <dstm2.benchmark.aj.List: void init()>
>
>
> l0 in init() is like this:
>  protected void init()
>    {
>
>        bottom_type l0;
>
>        l3 = newarray (java.lang.Object)[1];
>        l3[0] = l0;
>        $r1 = new dstm2.benchmark.aj.List$AjcClosure1;
>        specialinvoke $r1.<dstm2.benchmark.aj.List$AjcClosure1: void
> <init>(java.lang.Object[])>(l3);
> ...
>     }
>
> ajcClosure.<init>() is used to initialize ajcClosure, and l3 is expected
> to initialize the state of ajcClosure.
>
> But why does l0 is bottom_type, I am not familiar with the underlying
> matters of AOP, can you give me an example when this happens?
>
> Thanks
> Regards
> Peng
>
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>



-- 
Eric Bodden
Software Technology Group
Technical University Darmstadt, Germany


More information about the Soot-list mailing list