[Soot-list] Problems running Paddle

Ondrej Lhotak olhotak at uwaterloo.ca
Fri Nov 11 21:26:12 EST 2011


You can fix the second exception by increasing the size of the signature
domain (increase the 14 in
paddle/src/soot/jimple/paddle/bdddomains/SigDomain.jedd).

For the first exception, you can try to debug it by determining which
numberer is causing the exception. But if you are "invoking the Paddle
framework" yourself rather than letting it run as intended as one of
the phases of Soot, then I probably cannot be of much help. It is likely
that some of the internal Soot data structures, such as the things that
numberers refer to, are getting freed or reallocated in between your
various calls into Soot. Soot just is not meant to be used in such ways.

On Fri, Nov 11, 2011 at 03:10:31PM +0100, Tillmann wrote:
> Hi Hamid,
> 
> thanks again!
> 
> the resulting libjeddbuddy seems to have the same problems as my first 
> one (Exception below [2]). The System.loadLibrary()-Funktion works 
> without exceptions, so i assume that the 64bit-library is properly 
> loaded (if i try to load the 32bit precompiled one, i've got an 
> appropriate exception).
> 
> After that i've tried to work on an other project which is smaller 
> (about 100 LOC). The exception i got is below [1] .
> 
> Maybe there is a problem in my Soot-Lifecycle, but the invocation of the 
> paddle-framework is exactly positioned where i former invoked spark or 
> the CHA-Analysis (after PackManager.v().runPacks();).
> 
> [1]
> Exception in thread "main" java.lang.RuntimeException: no object with 
> number 6
>      at soot.util.ArrayNumberer.get(ArrayNumberer.java:56)
>      at soot.util.JeddNumberer.get(JeddNumberer.java:37)
>      at 
> jedd.internal.RelationContainer$MultiRelationIterator.curCubeToObject(RelationContainer.java:229)
>      at 
> jedd.internal.RelationContainer$MultiRelationIterator.newCube(RelationContainer.java:225)
>      at 
> jedd.internal.RelationContainer$MultiRelationIterator.<init>(RelationContainer.java:200)
>      at jedd.internal.RelationContainer.iterator(RelationContainer.java:184)
>      at 
> soot.jimple.paddle.queue.Rsrcm_stmt_kind_tgtmBDD$1.next(Rsrcm_stmt_kind_tgtmBDD.java:79)
>      at 
> soot.jimple.paddle.TradCallEdgeHandler.update(TradCallEdgeHandler.java:47)
>      at 
> soot.jimple.paddle.DependencyManager.update(DependencyManager.java:76)
>      at soot.jimple.paddle.OFCGScene.solve(OFCGScene.java:168)
>      at soot.jimple.paddle.OFCGConfig.solve(OFCGConfig.java:35)
>      at soot.jimple.paddle.PaddleScene.solve(PaddleScene.java:1390)
>      at 
> soot.jimple.paddle.PaddleTransformer.solve(PaddleTransformer.java:99)
> 
> [2]
> Exception in thread "main" java.lang.RuntimeException: Value 16384 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 
> de.tirunkel.da.analysis.AnalysisAggregator.run(AnalysisAggregator.java:297)
>      at de.tirunkel.da.main.Controller.main(Controller.java:149)
>      at de.tirunkel.da.main.SimulatedStart.main(SimulatedStart.java:29)
> 
> Am 11.11.2011 14:06, schrieb Hamid A. Toussi:
> > Hello Tillman,
> >
> > I have found my original script that build the libjeddbuddy.so. In
> > particular, we don't need any C++ file so using GNU C++ compiler (g++)
> > is unnecessary. The following should be straightforward. You don't
> > need to generate the wrappers since they are already in the jedd
> > distribution.
> >
> > You don't need to use swig as long as you stick with  the current
> > jedd's interface since the wrappers are already generated.
> >
> > buddy_cfiles="bddio.c bddop.c bvec.c cache.c fdd.c imatrix.c kernel.c \
> >         pairs.c prime.c reorder.c tree.c"
> >
> > jedd_files="jedd-0.4/runtime/generated/jbuddy_wrap.c
> > jedd-0.4/runtime/csrc/jbuddy.c"
> >
> >
> > gcc -c -fPIC -Wall -g3 $buddy_cfiles $jedd_files -I./
> > -Ijedd-0.4/runtime/generated -Ijedd-0.4/runtime/csrc
> > -I/home/hamid/ibm-java-x86_64-60/include
> > -I/home/hamid/ibm-java-x86_64-60/include/linux
> >
> >
> > objs="bddio.o bddop.o bvec.o cache.o fdd.o imatrix.o kernel.o \
> >         pairs.o prime.o reorder.o tree.o jbuddy_wrap.o jbuddy.o"
> > ld -G $objs -o libjeddbuddy.so
> 
> _______________________________________________
> 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