[Soot-list] Problematic behavior of Scene.v().addBasicClass (nightly build vs. soot 2.5)

Marc-André Laverdière marc-andre.laverdiere-papineau at polymtl.ca
Wed Oct 16 12:31:26 EDT 2013


Hello Khan,

Thanks for your patience. Everybody has been busy lately :(

What you are telling is that {path} contains the manager.MyManager
class, that it gets loaded in 2.5, but not in the latest development
version?

My first question is: where did you get the nightly build?  The right
place is here: http://vandyk.st.informatik.tu-darmstadt.de/abc/

Assuming you got the right nighly build, that really looks like a
regression.

First, I would ask you to put the bug report in github, so that we have
some traceability: https://github.com/Sable/soot/issues/new

Second, we need to find out if the class is somehow malformed or
something like that. Is this a class you compiled yourself? With a
recent Java compiler?

Third, if the problem is not with the class file, Would you please send
a minimal working example by email? Ideally, it should fit in one or two
.java files.

Regards,

Marc-André Laverdière-Papineau
Doctorant - PhD Candidate

On 10/09/2013 04:30 AM, Khanh Truong Duy Nguyen wrote:
> Hi,
> 
> When trying the most recent nightly build (Oct 9), I found that soot's
> behavior is problematic
> 
> Here is the code I have:
> 
> class Analysis extends SceneTransformer {...
> public static void main(String[] args) {
> //
> PackManager.v().getPack("wjtp").add(new Transform("wjtp.Transform",
> Analysis.v()));
> 
> Scene.v().addBasicClass("manager.MyManager",SootClass.SIGNATURES);
> 
> soot.Main.main(args);
> }
> }
> 
> Then I have
>  
> class CurrentMethod  {
>  static SootClass manager = Scene.v(),getSootClass("manager.MyManager");
> }
> 
> *** If I use soot-2.5.jar, there is no problem at all, the
> CurrentMethod.manager is the MyManager class
> 
> *** If I use the latest nightly build, there is a RuntimeException thrown:
> Caused by: java.lang.RuntimeException: 
> Aborting: can't find classfile manager.MyManager
> at soot.Scene.getSootClass(Scene.java:670)
> The stack trace is :
> at soot.SceneTransformer.transform(SceneTransformer.java:39)
> at soot.Transform.apply(Transform.java:89)
> at soot.ScenePack.internalApply(ScenePack.java:43)
> at soot.Pack.apply(Pack.java:114)
> at soot.PackManager.runWholeProgramPacks(PackManager.java:540)
> at soot.PackManager.runPacksNormally(PackManager.java:443)
> at soot.PackManager.runPacks(PackManager.java:388)
> at soot.Main.run(Main.java:198)
> at soot.Main.main(Main.java:141)
> at driver.Analysis.main(Analysis.java:54)
> 
> Here is the options argument:-w -pp -keep-line-number -f J -p jb
> use-original-names:false  -process-dir {path}  -cp {path}
> 
> Thank you,
> 
> Khanh Nguyen
> UC Irvine
> 
> 
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> 


More information about the Soot-list mailing list