[Soot-list] can't get npcolorer to work on eclipse

Venkatesh Vinayakarao venkateshv at iiitd.ac.in
Sat Jun 21 03:42:12 EDT 2014


*What works?*

Am able to use jap.npcolorer through command-line. The xml attributes are
generated properly. I use the following command:

java -cp
sootclasses-2.5.0.jar;jasminclasses-2.5.0.jar;polyglotclasses-1.3.5.jar
 soot.Main -cp C:\Progra~1\Java\jre7\lib\rt.jar;./input; -output-dir
C:\tools\soot\output  -process-dir C:\tools\soot\input  -xml-attributes -f
J -p jap.npcolorer on NullPointer

*What does not work?*

Am trying to reproduce the same through eclipse (soot 2.5.2 is installed).
Steps: Right click on source file -> soot -> process source file -> run
soot. In the dialog, I selected output format as Jimple and phase
options/jap/null pointer colourer/enabled.

Note that I have already added the jars to buildpath.

When I run soot, I get NullPointerException with the following stacktrace:
Starting from Soot's class library:
soot.Main --d C:\Users\Venkatesh\research-projects\matrix\sootOutput
--src-prec java --f J --p jap.npcolorer enabled:true --cp
/C:/tools/soot/sootclasses-2.5.0.jar;/C:/tools/soot/jasminclasses-2.5.0.jar;/C:/Program%20Files/Java/jre7/lib/ext/sunec.jar;/C:/Program%20Files/Java/jre7/lib/charsets.jar;/C:/Program%20Files/Java/jre7/lib/ext/access-bridge-64.jar;/C:/Program%20Files/Java/jre7/lib/rt.jar;/C:/Program%20Files/Java/jre7/lib/ext/jaccess.jar;/C:/Program%20Files/Java/jre7/lib/ext/zipfs.jar;/C:/tools/soot/polyglotclasses-1.3.5.jar;/C:/matrix/src;/C:/Program%20Files/Java/jre7/lib/ext/dnsns.jar;/C:/Program%20Files/Java/jre7/lib/ext/sunmscapi.jar;/C:/Users/Venkatesh/research-projects/matrix/bin/;/C:/Program%20Files/Java/jre7/lib/jsse.jar;/C:/Program%20Files/Java/jre7/lib/ext/sunjce_provider.jar;/C:/Program%20Files/Java/jre7/lib/resources.jar;/C:/Program%20Files/Java/jre7/lib/ext/localedata.jar;/C:/Program%20Files/Java/jre7/lib/jce.jar;/C:/Program%20Files/Java/jre7/lib/jfr.jar;;C:\Users\Venkatesh\research-projects\matrix\src;C:\Program
Files\Java\jre7\lib\resources.jar;C:\Program
Files\Java\jre7\lib\rt.jar;C:\Program
Files\Java\jre7\lib\jsse.jar;C:\Program
Files\Java\jre7\lib\jce.jar;C:\Program
Files\Java\jre7\lib\charsets.jar;C:\Program
Files\Java\jre7\lib\jfr.jar;C:\Program
Files\Java\jre7\lib\ext\access-bridge-64.jar;C:\Program
Files\Java\jre7\lib\ext\dnsns.jar;C:\Program
Files\Java\jre7\lib\ext\jaccess.jar;C:\Program
Files\Java\jre7\lib\ext\localedata.jar;C:\Program
Files\Java\jre7\lib\ext\sunec.jar;C:\Program
Files\Java\jre7\lib\ext\sunjce_provider.jar;C:\Program
Files\Java\jre7\lib\ext\sunmscapi.jar;C:\Program
Files\Java\jre7\lib\ext\zipfs.jar;C:\tools\soot\jasminclasses-2.5.0.jar;C:\tools\soot\polyglotclasses-1.3.5.jar;C:\tools\soot\sootclasses-2.5.0.jar
--xml-attributes math.NullPointer
Soot started on Sat Jun 21 13:05:04 IST 2014
java.lang.reflect.InvocationTargetException
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 ca.mcgill.sable.soot.launching.SootThread.run(SootThread.java:138)
Caused by: java.lang.Error: Error loading java.lang.CharSequence
at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:130)
at soot.JastAddJ.Program.getCompilationUnit(Program.java:930)
at soot.JastAddJ.Program.lookupType_compute(Program.java:1466)
at soot.JastAddJ.Program.lookupType(Program.java:1447)

...
...
...
at soot.Main.run(Main.java:167)
at soot.Main.main(Main.java:141)
... 5 more
Caused by: java.lang.NullPointerException
at soot.JastAddJ.BytecodeParser.parseThisClass(BytecodeParser.java:441)
at soot.JastAddJ.BytecodeParser.parseTypeDecl(BytecodeParser.java:425)
at soot.JastAddJ.BytecodeParser.parse(BytecodeParser.java:333)
at soot.JastAddJ.BytecodeParser.read(BytecodeParser.java:29)
at soot.JastAddJ.PathPart.getCompilationUnit(PathPart.java:117)
... 62 more

What am I doing wrong?

To my limited knowledge, java.lang.CharSequence should be picked up from
rt.jar and eclipse should automatically take care of that. I see rt.jar in
the command's cp (pasted above). Not sure what else is missing.

Thanks,
Venkatesh.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20140621/b4304fb0/attachment.html 


More information about the Soot-list mailing list