[Soot-list] Class path problem, cant find java.lang.CharSequence
Marcelino Rodriguez Cancio
marcelino.rguez.cancio at gmail.com
Mon Apr 20 10:30:59 EDT 2015
Hi all,
I’m trying to run one of the Soot examples found in the wiki in all classes
in a directory. But got this error:
resolving [from .java]: TestClass1
Exception in thread "main" java.lang.Error: Error loading
java.lang.CharSequence
at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:128)
at soot.JastAddJ.Program.getCompilationUnit(Program.java:858)
at soot.JastAddJ.Program.getLibCompilationUnit_compute(Program.java:1531)
at soot.JastAddJ.Program.getLibCompilationUnit(Program.java:1514)
at soot.JastAddJ.Program.lookupLibType_compute(Program.java:1479)
at soot.JastAddJ.Program.lookupLibType(Program.java:1447)
at soot.JastAddJ.Program.lookupType_compute(Program.java:1426)
at soot.JastAddJ.Program.lookupType(Program.java:1407)
at soot.JastAddJ.Program.Define_TypeDecl_lookupType(Program.java:1995)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.ASTNode.Define_TypeDecl_lookupType(ASTNode.java:1657)
at soot.JastAddJ.Expr.lookupType(Expr.java:1186)
at soot.JastAddJ.TypeAccess.decls_compute(TypeAccess.java:425)
at soot.JastAddJ.TypeAccess.decls(TypeAccess.java:414)
at
soot.JastAddJ.TypeAccess.refined_TypeScopePropagation_TypeAccess_decl(TypeAccess.java:387)
at soot.JastAddJ.TypeAccess.decl_compute(TypeAccess.java:460)
at soot.JastAddJ.TypeAccess.decl(TypeAccess.java:452)
at soot.JastAddJ.TypeAccess.type_compute(TypeAccess.java:590)
at soot.JastAddJ.TypeAccess.type(TypeAccess.java:583)
at
soot.JastAddJ.ParameterDeclaration.type_compute(ParameterDeclaration.java:479)
at soot.JastAddJ.ParameterDeclaration.type(ParameterDeclaration.java:472)
at soot.JastAddJ.MethodDecl.signature_compute(MethodDecl.java:1355)
at soot.JastAddJ.MethodDecl.signature(MethodDecl.java:1343)
at
soot.JastAddJ.TypeDecl.localMethodsSignatureMap_compute(TypeDecl.java:2527)
at soot.JastAddJ.TypeDecl.localMethodsSignatureMap(TypeDecl.java:2515)
at soot.JastAddJ.ClassDecl.methodsSignatureMap_compute(ClassDecl.java:1102)
at soot.JastAddJ.ClassDecl.methodsSignatureMap(ClassDecl.java:1094)
at soot.JastAddJ.TypeDecl$2.<init>(TypeDecl.java:468)
at soot.JastAddJ.TypeDecl.methodsIterator(TypeDecl.java:467)
at soot.JastAddJ.TypeDecl.methodsNameMap_compute(TypeDecl.java:2468)
at soot.JastAddJ.TypeDecl.methodsNameMap(TypeDecl.java:2459)
at soot.JastAddJ.TypeDecl.memberMethods(TypeDecl.java:2431)
at
soot.JastAddJ.AbstractDot.Define_Collection_lookupMethod(AbstractDot.java:766)
at soot.JastAddJ.Expr.lookupMethod(Expr.java:1032)
at soot.JastAddJ.MethodAccess.decls_compute(MethodAccess.java:1094)
at soot.JastAddJ.MethodAccess.decls(MethodAccess.java:1086)
at soot.JastAddJ.MethodAccess.decl_compute(MethodAccess.java:1128)
at soot.JastAddJ.MethodAccess.decl(MethodAccess.java:1120)
at
soot.JastAddJ.MethodAccess.refined_TypeAnalysis_MethodAccess_type(MethodAccess.java:913)
at soot.JastAddJ.MethodAccess.type_compute(MethodAccess.java:1264)
at soot.JastAddJ.MethodAccess.type(MethodAccess.java:1249)
at soot.JastAddJ.AbstractDot.type_compute(AbstractDot.java:604)
at soot.JastAddJ.AbstractDot.type(AbstractDot.java:597)
at soot.JastAddJ.IfStmt.typeCheck(IfStmt.java:138)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1284)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.ASTNode.collectErrors(ASTNode.java:1292)
at soot.JastAddJ.CompilationUnit.errorCheck(CompilationUnit.java:178)
at soot.JastAddInitialResolver.formAst(JastAddInitialResolver.java:58)
at soot.JavaClassSource.resolve(JavaClassSource.java:54)
at soot.SootResolver.bringToHierarchy(SootResolver.java:237)
at soot.SootResolver.bringToSignatures(SootResolver.java:264)
at soot.SootResolver.bringToBodies(SootResolver.java:302)
at soot.SootResolver.processResolveWorklist(SootResolver.java:161)
at soot.SootResolver.resolveClass(SootResolver.java:129)
at soot.Scene.loadClass(Scene.java:694)
at soot.Scene.loadClassAndSupport(Scene.java:679)
at fr.irisa.diverse.SwapSootMain.main(SwapSootMain.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
I tried both command line and manually calling the Soot API, so far no
look, same error both.
Here is my code for the command line:
String[] sootParams = new String[] { "-cp", ".", "-pp", "-process-dir",
p.getProperty("cp"), "-d", p.getProperty("output"), "-v" };
soot.Main.main(sootParams);
===============
And here is my code for the manual calls to the API:
public static void configure(String classpath) {
Options.v().set_verbose(true);
Options.v().set_process_dir(Arrays.asList(classpath));
Options.v().set_keep_line_number(true);
Options.v().set_src_prec(Options.src_prec_class);
String cp = System.getProperty("java.class.path").replace("\\",
"/");
Options.v().set_soot_classpath(cp);
Options.v().set_prepend_classpath(true);
Options.v().set_allow_phantom_refs(true);
PhaseOptions.v().setPhaseOption("bb", "off");
PhaseOptions.v().setPhaseOption("tag.ln", "on");
PhaseOptions.v().setPhaseOption("jj.a", "on");
PhaseOptions.v().setPhaseOption("jj.ule", "on");
Options.v().set_whole_program(true);
}
public static void main(String[] args) throws IOException {
Properties p = new Properties();
p.load(SwapSootMain.class.getClassLoader().getResourceAsStream("soot.properties"));
configure(p.getProperty("cp"));
SootClass c = Scene.v().loadClassAndSupport("TestClass1");
c.setApplicationClass();
// Retrieve the method and its body
SootMethod m = c.getMethodByName("foo");
Body b = m.retrieveActiveBody();
// Instruments bytecode
new GuaranteedDefs(new ExceptionalUnitGraph(b));
}
Here is the value of the
System.getProperty("java.class.path").replace("\\", "/"):
C:/Program Files/Java/jdk1.8.0_05/jre/lib/resources.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/rt.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/access-bridge-64.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/cldrdata.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/dnsns.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/jaccess.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/jfxrt.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/localedata.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/nashorn.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/sunec.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/sunjce_provider.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/sunmscapi.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/sunpkcs11.jar
C:/Program Files/Java/jdk1.8.0_05/jre/lib/ext/zipfs.jar
C:/MarcelStuff/PROJECTS/DIVERSE/soot-example/target/classes
C:/Users/marodrig/.m2/repository/edu/sable/soot/nightly-build/soot-nightly-build.jar
C:/Program Files (x86)/JetBrains/IntelliJ IDEA Community Edition
14.0.2/lib/idea_rt.jar
Any ideas what could be happening?
Thanks you all.
Marcelino
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20150420/52ec5543/attachment.html
More information about the Soot-list
mailing list