[Soot-list] Paddle error

Molnar Arthur arthur486 at yahoo.com
Mon Oct 11 16:05:06 EDT 2010


Hello everyone,
I'm trying to use Paddle in order to build object sensitive callgraphs for 
several open source applications; when running it in object sensitivity mode 
using the buddy backend I receive the following error (the specific app is 
FreeMind, latest version, using JDK 1.4.2):

Exception in thread "Thread-0" java.lang.RuntimeException: Value 16432 was too 
large in domain soot.jimple.paddle.bdddomains.SigDomain!
    at jedd.internal.Domain.setBits(Domain.java:62)
    at jedd.internal.Jedd.literal(Jedd.java:158)
    at soot.jimple.paddle.BDDVirtualCalls.<init>(BDDVirtualCalls.java:38)
    at soot.jimple.paddle.BDDFactory.VirtualCalls(BDDFactory.java:199)
    at soot.jimple.paddle.OFCGScene.build(OFCGScene.java:241)
    at soot.jimple.paddle.OFCGScene.setup(OFCGScene.java:91)
    at soot.jimple.paddle.OFCGConfig.setup(OFCGConfig.java:30)
    at soot.jimple.paddle.PaddleScene.setup(PaddleScene.java:1321)
    at soot.jimple.paddle.PaddleTransformer.setup(PaddleTransformer.java:84)
    at 
soot.jimple.paddle.PaddleTransformer.internalTransform(PaddleTransformer.java:45)

    at soot.SceneTransformer.transform(SceneTransformer.java:39)
    at cg.TestCallGraph.run(TestCallGraph.java:91)
    at java.lang.Thread.run(Thread.java:619)

My application is definitely NOT running out of memory, so there must be 
something else at play here. If anybody has an idea regarding this error, please 
help :). I have also attached the code that generates the error:

        Options.v().set_whole_program(true);
        Scene.v().loadBasicClasses();
        Scene.v().setSootClassPath(SOOT_PATH);
        
Scene.v().setMainClass(Scene.v().loadClassAndSupport("freemind.main.FreeMindStarter"));

        Scene.v().loadDynamicClasses();

        SootClass cl = 
Scene.v().loadClassAndSupport("freemind.view.mindmapview.NodeView");
        cl.setApplicationClass();

        HashMap optionsMap = new HashMap();
        optionsMap.put("enabled", "true");

        SceneTransformer sctform;
        PhaseOptions.v().setPhaseOption("jb.ne", "enabled:false");
        PhaseOptions.v().setPhaseOption("jb.uce", "enabled:false");
        PhaseOptions.v().setPhaseOption("jb.dae", "enabled:false");
        PhaseOptions.v().setPhaseOption("jb.ule", "enabled:false");
        PhaseOptions.v().setPhaseOption("jb.cp-ule", "enabled:false");
        PhaseOptions.v().setPhaseOption("jj", "enabled:false");

        PhaseOptions.v().setPhaseOption("wstp", "enabled:false");
        PhaseOptions.v().setPhaseOption("wsop", "enabled:false");
        PhaseOptions.v().setPhaseOption("wjtp", "enabled:false");
        PhaseOptions.v().setPhaseOption("wjop", "enabled:false");
        PhaseOptions.v().setPhaseOption("wjap", "enabled:false");
        PhaseOptions.v().setPhaseOption("shimple", "enabled:false");
        PhaseOptions.v().setPhaseOption("stp", "enabled:false");
        PhaseOptions.v().setPhaseOption("sop", "enabled:false");
        PhaseOptions.v().setPhaseOption("jtp", "enabled:false");
        PhaseOptions.v().setPhaseOption("jop", "enabled:false");
        PhaseOptions.v().setPhaseOption("jap", "enabled:false");
        PhaseOptions.v().setPhaseOption("gb", "enabled:false");
        PhaseOptions.v().setPhaseOption("gop", "enabled:false");
        PhaseOptions.v().setPhaseOption("bb", "enabled:false");
        PhaseOptions.v().setPhaseOption("bop", "enabled:false");
        PhaseOptions.v().setPhaseOption("tag", "enabled:false");
        PhaseOptions.v().setPhaseOption("db", "enabled:false");

        PhaseOptions.v().setPhaseOption("cg", "implicit-entry:false");
        PhaseOptions.v().setPhaseOption("cg", "verbose:false");
        PhaseOptions.v().setPhaseOption("cg", "jdkver:4");
        PhaseOptions.v().setPhaseOption("cg", "all-reachable:true");

        optionsMap.put("enabled", "true");
        optionsMap.put("verbose", "true");
        optionsMap.put("bdd", "true");
        optionsMap.put("backend", "buddy");
        optionsMap.put("context", "objsens");
        optionsMap.put("propagator", "auto");
        optionsMap.put("conf", "ofcg");
        optionsMap.put("order", "32");
        optionsMap.put("q", "auto");
        optionsMap.put("set-impl", "double");
        optionsMap.put("double-set-old", "hybrid");
        optionsMap.put("double-set-new", "hybrid");
        optionsMap.put("pre-jimplify", "false");

        sctform = PaddleTransformer.v();



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20101011/e84f91b8/attachment.html 


More information about the Soot-list mailing list