[Soot-list] java.lang.RuntimeException: Attempt to create VarNode of type bottom_type

Jochen Huck jochen.huck at student.kit.edu
Fri Nov 12 10:30:32 EST 2010


Hi again,

trying to run my analysis (soot args: -w -annot-side-effect 
-xml-attributes -f J -p cg.spark enabled -p jb use-original-names:true 
-p jp preserve-source-annotations:true -keep-line-number -src-prec java 
-cp <myClassPath> -main-class <MyMainClass>) I encounter another 
problem. I get following exception:

Exception in thread "main" java.lang.RuntimeException: Attempt to create 
VarNode of type bottom_type
     at soot.jimple.spark.pag.VarNode.<init>(VarNode.java:87)
     at soot.jimple.spark.pag.LocalVarNode.<init>(LocalVarNode.java:41)
     at soot.jimple.spark.pag.PAG.makeLocalVarNode(PAG.java:497)
     at soot.jimple.spark.pag.PAG.makeLocalFieldRefNode(PAG.java:559)
     at 
soot.jimple.spark.builder.MethodNodeFactory.caseInstanceFieldRef(MethodNodeFactory.java:199)
     at 
soot.jimple.internal.AbstractInstanceFieldRef.apply(AbstractInstanceFieldRef.java:110)
     at 
soot.jimple.spark.builder.MethodNodeFactory$1.caseAssignStmt(MethodNodeFactory.java:74)
     at soot.jimple.internal.JAssignStmt.apply(JAssignStmt.java:221)
     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:123)
     at 
soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:53)
     at 
soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:151)
     at soot.SceneTransformer.transform(SceneTransformer.java:39)
     at soot.Transform.apply(Transform.java:89)
     at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
     at 
soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:47)
     at soot.Pack.apply(Pack.java:114)
     at soot.PackManager.runWholeProgramPacks(PackManager.java:408)
     at soot.PackManager.runPacks(PackManager.java:329)
     at soot.Main.run(Main.java:198)
     at soot.Main.main(Main.java:141)
     at analysis.MainAnalysis.main(MainAnalysis.java:35)
     at test.ToolChain.main(ToolChain.java:146)
     at test.ToolChainExample.main(ToolChainExample.java:51)

I found 
http://www.sable.mcgill.ca/pipermail/soot-list/2009-August/002444.html, 
but adding the phase option -p jb.tr use-older-type-assigner:true ended 
in the following exception:

Exception in thread "main" java.lang.RuntimeException: 
soot.jimple.toolkits.typing.TypeException: 
soot.jimple.toolkits.typing.ConstraintChecker$RuntimeTypeException: Type 
Error(12)
     at 
soot.jimple.toolkits.typing.ConstraintChecker.error(ConstraintChecker.java:75)
     at 
soot.jimple.toolkits.typing.ConstraintChecker.caseIfStmt(ConstraintChecker.java:962)
     at soot.jimple.internal.JIfStmt.apply(JIfStmt.java:139)
     at 
soot.jimple.toolkits.typing.ConstraintChecker.check(ConstraintChecker.java:53)
     at 
soot.jimple.toolkits.typing.TypeResolver.check_and_fix_constraints(TypeResolver.java:804)
     at 
soot.jimple.toolkits.typing.TypeResolver.resolve_step_3(TypeResolver.java:299)
     at 
soot.jimple.toolkits.typing.TypeResolver.resolve(TypeResolver.java:195)
     at 
soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:99)
     at soot.BodyTransformer.transform(BodyTransformer.java:51)
     at soot.Transform.apply(Transform.java:104)
     at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:66)
     at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:89)
     at soot.Pack.apply(Pack.java:124)
     at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:117)
     at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:82)
     at soot.SootMethod.retrieveActiveBody(SootMethod.java:315)
     at 
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:526)
     at 
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:426)
     at 
soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:55)
     at 
soot.jimple.spark.solver.PropWorklist.handleVarNode(PropWorklist.java:123)
     at 
soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:53)
     at 
soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:151)
     at soot.SceneTransformer.transform(SceneTransformer.java:39)
     at soot.Transform.apply(Transform.java:89)
     at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
     at 
soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:47)
     at soot.Pack.apply(Pack.java:114)
     at soot.PackManager.runWholeProgramPacks(PackManager.java:408)
     at soot.PackManager.runPacks(PackManager.java:329)
     at soot.Main.run(Main.java:198)
     at soot.Main.main(Main.java:141)
     at analysis.MainAnalysis.main(MainAnalysis.java:35)
     at test.ToolChain.main(ToolChain.java:145)
     at test.ToolChainExample.main(ToolChainExample.java:52)

     at 
soot.jimple.toolkits.typing.ConstraintChecker.check(ConstraintChecker.java:61)
     at 
soot.jimple.toolkits.typing.TypeResolver.check_and_fix_constraints(TypeResolver.java:804)
     at 
soot.jimple.toolkits.typing.TypeResolver.resolve_step_3(TypeResolver.java:299)
     at 
soot.jimple.toolkits.typing.TypeResolver.resolve(TypeResolver.java:195)
     at 
soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:99)
     at soot.BodyTransformer.transform(BodyTransformer.java:51)
     at soot.Transform.apply(Transform.java:104)
     at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:66)
     at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:89)
     at soot.Pack.apply(Pack.java:124)
     at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:117)
     at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:82)
     at soot.SootMethod.retrieveActiveBody(SootMethod.java:315)
     at 
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:526)
     at 
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:426)
     at 
soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:55)
     at 
soot.jimple.spark.solver.PropWorklist.handleVarNode(PropWorklist.java:123)
     at 
soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:53)
     at 
soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:151)
     at soot.SceneTransformer.transform(SceneTransformer.java:39)
     at soot.Transform.apply(Transform.java:89)
     at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
     at 
soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:47)
     at soot.Pack.apply(Pack.java:114)
     at soot.PackManager.runWholeProgramPacks(PackManager.java:408)
     at soot.PackManager.runPacks(PackManager.java:329)
     at soot.Main.run(Main.java:198)
     at soot.Main.main(Main.java:141)
     at analysis.MainAnalysis.main(MainAnalysis.java:35)
     at test.ToolChain.main(ToolChain.java:145)
     at test.ToolChainExample.main(ToolChainExample.java:52)

     at 
soot.jimple.toolkits.typing.TypeResolver.resolve(TypeResolver.java:201)
     at 
soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:99)
     at soot.BodyTransformer.transform(BodyTransformer.java:51)
     at soot.Transform.apply(Transform.java:104)
     at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:66)
     at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:89)
     at soot.Pack.apply(Pack.java:124)
     at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:117)
     at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:82)
     at soot.SootMethod.retrieveActiveBody(SootMethod.java:315)
     at 
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(OnFlyCallGraphBuilder.java:526)
     at 
soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(OnFlyCallGraphBuilder.java:426)
     at 
soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:55)
     at 
soot.jimple.spark.solver.PropWorklist.handleVarNode(PropWorklist.java:123)
     at 
soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:53)
     at 
soot.jimple.spark.SparkTransformer.internalTransform(SparkTransformer.java:151)
     at soot.SceneTransformer.transform(SceneTransformer.java:39)
     at soot.Transform.apply(Transform.java:89)
     at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
     at 
soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:47)
     at soot.Pack.apply(Pack.java:114)
     at soot.PackManager.runWholeProgramPacks(PackManager.java:408)
     at soot.PackManager.runPacks(PackManager.java:329)
     at soot.Main.run(Main.java:198)
     at soot.Main.main(Main.java:141)
     at analysis.MainAnalysis.main(MainAnalysis.java:35)
     at test.ToolChain.main(ToolChain.java:145)
     at test.ToolChainExample.main(ToolChainExample.java:52)

This time I analyze the original jDesktopSearch 
http://sourceforge.net/projects/jdesktopsearch/, jDesktopSearch-1.4.3.zip


Jochen


More information about the Soot-list mailing list