[Soot-list] a class resolution exception

li xin li-xin at jaist.ac.jp
Sat Mar 22 04:10:50 EDT 2008


Hi,

I come across a class resolution excpetion when soot performs the on-the-fly
points-to analysis. The command line options I used is as follows,
"--app -w -f J -p cg.spark enabled:true -keep-line-number ClassName"

I ever attempted to settle it by updating the JDK version I used or feeding
the "-i java." option, however it didnt help.
Could anyone please help me out?


Many Thanks, Li

--
[Call Graph] For information on where the call graph may be incomplete, use
the verbose option to the cg phase.
[Spark] Pointer Assignment Graph in 4.8 seconds.
[Spark] Type masks in 1.1 seconds.
[Spark] Pointer Graph simplified in 0.0 seconds.
Exception in thread "main"
soot.AbstractSootMethodRef$ClassResolutionFailedException: Class
java.lang.Long doesn't have method getChars([long, int, char[]]) : void;
failed to resolve in superclasses and interfacesLooking in
java.lang.Longwhich has methods [<
java.lang.Long: byte byteValue()>, <java.lang.Long: double doubleValue()>, <
java.lang.Long: float floatValue()>, <java.lang.Long: int hashCode()>, <
java.lang.Long: int intValue()>, <java.lang.Long: long longValue()>, <
java.lang.Long: short shortValue()>, <java.lang.Long: void <clinit>()>, <
java.lang.Long: void <init>(long)>, <java.lang.Long: int
getChars(long,char[])>, <java.lang.Long: int compareTo(java.lang.Long)>, <
java.lang.Long: int compareTo(java.lang.Object)>, <java.lang.Long: boolean
equals(java.lang.Object)>, <java.lang.Long: java.lang.String toString()>, <
java.lang.Long: java.lang.String toBinaryString(long)>, <java.lang.Long:
java.lang.String toHexString(long)>, <java.lang.Long:
java.lang.StringtoOctalString(long)>, <
java.lang.Long: java.lang.String toString(long)>, <java.lang.Long:
java.lang.String toString(long,int)>, <java.lang.Long:
java.lang.StringtoUnsignedString(long,int)>, <
java.lang.Long: long parseLong(java.lang.String)>, <java.lang.Long: void
<init>(java.lang.String)>, <java.lang.Long: long
parseLong(java.lang.String,int)>,
<java.lang.Long: void appendTo(long,java.lang.StringBuffer)>, <
java.lang.Long: java.lang.Long decode(java.lang.String)>, <java.lang.Long:
java.lang.Long getLong(java.lang.String)>, <java.lang.Long:
java.lang.LongvalueOf(
java.lang.String)>, <java.lang.Long: java.lang.Long
valueOf(java.lang.String,int)>,
<java.lang.Long: java.lang.Long getLong(java.lang.String,long)>, <
java.lang.Long: java.lang.Long getLong(java.lang.String,java.lang.Long)>]
Looking in java.lang.Number which has methods [<java.lang.Number: byte
byteValue()>, <java.lang.Number: double doubleValue()>, <java.lang.Number:
float floatValue()>, <java.lang.Number: int intValue()>, <java.lang.Number:
long longValue()>, <java.lang.Number: short shortValue()>, <java.lang.Number:
void <init>()>]
Looking in java.lang.Object which has methods [<java.lang.Object: int
hashCode()>, <java.lang.Object: void <clinit>()>, <java.lang.Object: void
<init>()>, <java.lang.Object: void finalize()>, <java.lang.Object: void
notify()>, <java.lang.Object: void notifyAll()>, <java.lang.Object: void
registerNatives()>, <java.lang.Object: void wait()>, <java.lang.Object: void
wait(long)>, <java.lang.Object: void wait(long,int)>, <java.lang.Object:
java.lang.Class getClass()>, <java.lang.Object: java.lang.Object clone()>, <
java.lang.Object: boolean equals(java.lang.Object)>, <java.lang.Object:
java.lang.String toString()>]
Looking in java.lang.Comparable which has methods [<java.lang.Comparable:
int compareTo(java.lang.Object)>]
Looking in java.io.Serializable which has methods []
 at soot.AbstractSootMethodRef.resolve(AbstractSootMethodRef.java:135)
 at soot.AbstractSootMethodRef.resolve(AbstractSootMethodRef.java:95)
 at soot.jimple.internal.AbstractInvokeExpr.getMethod(
AbstractInvokeExpr.java:55)
 at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.getImplicitTargets(
OnFlyCallGraphBuilder.java:235)
 at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processNewMethod(
OnFlyCallGraphBuilder.java:183)
 at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.processReachables(
OnFlyCallGraphBuilder.java:81)
 at soot.jimple.spark.solver.OnFlyCallGraph.build(OnFlyCallGraph.java:69)
 at soot.jimple.spark.solver.PropWorklist.handleVarNode(PropWorklist.java
:127)
 at soot.jimple.spark.solver.PropWorklist.propagate(PropWorklist.java:55)
 at soot.jimple.spark.SparkTransformer.internalTransform(
SparkTransformer.java:121)
 at soot.SceneTransformer.transform(SceneTransformer.java:39)
 at soot.Transform.apply(Transform.java:89)
 at soot.RadioScenePack.internalApply(RadioScenePack.java:60)
 at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(
CallGraphPack.java:40)
 at soot.Pack.apply(Pack.java:110)
 at soot.PackManager.runWholeProgramPacks(PackManager.java:405)
 at soot.PackManager.runPacks(PackManager.java:326)
 at soot.Main.run(Main.java:203)
 at soot.Main.main(Main.java:146)
 at relevancyanalysis.Main.main(Main.java:52)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20080322/44703018/attachment.htm


More information about the Soot-list mailing list