[Soot-list] Re: Paddle problem

Ondrej Lhotak olhotak at uwaterloo.ca
Thu Mar 30 07:19:36 EST 2006


Hi Saswat...

On Fri, Mar 24, 2006 at 01:04:48AM -0500, Saswat Anand wrote:
> I am using paddle with kcfa. I am seeing that some the contexts are 
> jimple Stmt's that do not invoke any method. I was wondering what does 
> that mean? I thought only invokation stmts can become contexts. For 
> example for 2-cfa one of the ContextString's contains following two Stmt's:
> 
> <sun.net.InetAddressCachePolicy: boolean set> = 1       
> <sun.net.InetAddressCachePolicy: boolean set> = 1       

Setting a static field causes the class containing the field to be
loaded and it static initializer to be called, if it has not yet been 
called before. The static initializer is analyzed in the context of the
statement that caused it to be executed, namely the write to the field.

> I am trying to use paddle with 2-cfa and context-heap option set to 
> true.

I've never managed to get Paddle to run in available memory with these
settings, at least not on real benchmarks complete with the standard
library.

> With these options JVM Crashes with the following messgae:
> 
> # An unexpected error has been detected by HotSpot Virtual Machine:
> #
> #  SIGSEGV (0xb) at pc=0x43c241f6, pid=7267, tid=16384
> #
> # Java VM: Java HotSpot(TM) Client VM (1.4.2_10-b03 mixed mode)
> # Problematic frame:
> # C  [libjeddbuddy.so+0x231f6]  bdd_makenode+0x66

This most likely indicates that BuDDy has run out of memory (i.e. that
it tried to malloc more, and the malloc failed). I've noticed that in
some cases, BuDDy does not handle this condition cleanly: it *should*
return an error which Jedd would translate to a Java exception, but
sometimes, it just crashes in bdd_makenode instead.

> I was wondering if this is a known problem with the above options. I 
> also tried cudd backend and I get a message "unable to allocate 16368 
> bytes'. So does this above problem also indicate memory limitation. I 
> would appreciate it very much if you could suggest a workaround for this.

I don't have too much experience with CUDD (I tend to use BuDDy most of
the time), but judging from the error message, it sounds like it is also
running out of memory.

Ondrej



More information about the Soot-list mailing list