[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