Closed Roy-NJU closed 4 years ago
All the transformations supported by Tamiflex are not currently handled by Soot. The transformations supported are as follows: Class.forName Class.newInstance Constructor.newInstance Method.invoke Field.set Field.get
Modify the poa.properties file to include only the above transformations. This will get rid of the exception.
Dear gsridhar53: Thanks your reply. I have modified the poa.properties file, but the exceptions remain: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at ca.mcgill.sable.soot.launching.SootThread.run(SootThread.java:138) Caused by: java.lang.RuntimeException: Line: 'Class.getMethod;<Harness: void main(java.lang.String[])>;sun.launcher.LauncherHelper.validateMainClass;;isAccessible=false;' at soot.Scene.addReflectionTraceClasses(Scene.java:1034) at soot.Scene.loadBasicClasses(Scene.java:986) at soot.Scene.loadNecessaryClasses(Scene.java:1061) at soot.Main.run(Main.java:167) at soot.Main.main(Main.java:141) ... 5 more Caused by: java.lang.RuntimeException: Unknown entry kind: Class.getMethod at soot.Scene.addReflectionTraceClasses(Scene.java:1031) ... 9 more Roy Department of Computer Science and Technology Nanjing University
Use this:
Hi gsridhar53 : I used your poa file, but the problems remain.
Roy Department of Computer Science and Technology Nanjing University
I used @gsridhar53 's poa.properties.txt
then my similar problem was solved!
@Roy-NJU did you
(1.) Put @gsridhar53's poa.properties
to <user home directory>\.tamiflex\
and
(2.) Rerun the step 1 in https://github.com/secure-software-engineering/tamiflex/wiki/DaCapoAndSoot
?
By <user home directory>
I mean what System.out.println(System.getProperty("user.home"));
prints, e.g. C:\Users\admin
.
@Roy-NJU please email me or contact QQ 415300195 for 中文 discussion...
@gsridhar53 @SnowOnion Thanks. I used gsridhar53's poa.properies.txt and many of the class can be analysed. But some classes such as DacapoException can not be analysed and report the followings:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at ca.mcgill.sable.soot.launching.SootThread.run(SootThread.java:138)
Caused by: java.lang.RuntimeException: Main-class has no main method!
at soot.Scene.setMainClass(Scene.java:146)
at soot.Scene.setMainClassFromOptions(Scene.java:1227)
at soot.Scene.hasMainClass(Scene.java:175)
at soot.EntryPoints.application(EntryPoints.java:65)
at soot.EntryPoints.all(EntryPoints.java:96)
at soot.Scene.getEntryPoints(Scene.java:711)
at soot.Scene.getReachableMethods(Scene.java:758)
at soot.jimple.spark.solver.OnFlyCallGraph.
@Roy-NJU Please re-open the issue if this is still relevant.
I use jdk 8 and soot.2.5.0. When I use poa-2.0.1.jar to perform the step 1, it works ok. And when I use soot to analysis the bytecode, many exceptions occur.
Starting from Soot's class library: soot.Main --d C:\Users\tmks\workspace\Benchmark\sootOutput --include-all --cp /C:/Program%20Files/Java/jre1.8.0_101/lib/charsets.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/access-bridge-64.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/sunmscapi.jar;/F:/eclipse-standard-kepler-SR1-win32-x86_64/eclipse/plugins/ca.mcgill.sable.soot.lib_2.5.2/lib/java_cup.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/jfxrt.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/zipfs.jar;/F:/poa-2.0.1.jar;/C:/Users/tmks/workspace/Benchmark/bin/;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/nashorn.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/resources.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/jfr.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/sunjce_provider.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/rt.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/cldrdata.jar;/F:/pia-2.0.1.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/jce.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/localedata.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/sunec.jar;/F:/Benchmark/src;/F:/eclipse-standard-kepler-SR1-win32-x86_64/eclipse/plugins/ca.mcgill.sable.soot.lib_2.5.2/lib/jasminclasses.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/dnsns.jar;/F:/dacapo-9.12-bach.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/jaccess.jar;/F:/eclipse-standard-kepler-SR1-win32-x86_64/eclipse/plugins/org.apache.ant_1.8.4.v201303080030/lib/ant.jar;/F:/eclipse-standard-kepler-SR1-win32-x86_64/eclipse/plugins/ca.mcgill.sable.soot.lib_2.5.2/lib/polyglot.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/ext/sunpkcs11.jar;/C:/Program%20Files/Java/jre1.8.0_101/lib/jsse.jar;;F:\dacapo-9.12-bach.jar;C:\Program Files\Java\jre1.8.0_101\lib\resources.jar;C:\Program Files\Java\jre1.8.0_101\lib\rt.jar;C:\Program Files\Java\jre1.8.0_101\lib\jsse.jar;C:\Program Files\Java\jre1.8.0_101\lib\jce.jar;C:\Program Files\Java\jre1.8.0_101\lib\charsets.jar;C:\Program Files\Java\jre1.8.0_101\lib\jfr.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\cldrdata.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\dnsns.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\jaccess.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\jfxrt.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\localedata.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\nashorn.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\sunec.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\sunmscapi.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jre1.8.0_101\lib\ext\zipfs.jar;F:\eclipse-standard-kepler-SR1-win32-x86_64\eclipse\plugins\ca.mcgill.sable.soot.lib_2.5.2\lib\jasminclasses.jar;F:\eclipse-standard-kepler-SR1-win32-x86_64\eclipse\plugins\ca.mcgill.sable.soot.lib_2.5.2\lib\java_cup.jar;F:\eclipse-standard-kepler-SR1-win32-x86_64\eclipse\plugins\ca.mcgill.sable.soot.lib_2.5.2\lib\polyglot.jar;F:\poa-2.0.1.jar;F:\pia-2.0.1.jar;F:\eclipse-standard-kepler-SR1-win32-x86_64\eclipse\plugins\org.apache.ant_1.8.4.v201303080030\lib\ant.jar --p cg reflection-log:C:\Users\tmks\workspace\Benchmark\out\refl.log --xml-attributes --main-class org.dacapo.harness.Harness org.dacapo.harness.Avrora Soot started on Mon Sep 26 16:46:53 CST 2016 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at ca.mcgill.sable.soot.launching.SootThread.run(SootThread.java:138) Caused by: java.lang.RuntimeException: Line: 'Class.getDeclaredField;;java.lang.invoke.MethodHandle.;;isAccessible=false;'
at soot.Scene.addReflectionTraceClasses(Scene.java:1034)
at soot.Scene.loadBasicClasses(Scene.java:986)
at soot.Scene.loadNecessaryClasses(Scene.java:1061)
at soot.Main.run(Main.java:167)
at soot.Main.main(Main.java:141)
... 5 more
Caused by: java.lang.RuntimeException: Unknown entry kind: Class.getDeclaredField
at soot.Scene.addReflectionTraceClasses(Scene.java:1031)
... 9 more
How can I solve this problem? Please help me! Thanks a lot!
Roy Department of Computer Science and Technology Nanjing University