[Soot-list] Re: java.lang.ref.Finalizer

Chris Pickett chris.pickett at mail.mcgill.ca
Tue Mar 11 12:08:38 EDT 2008


Hi Khilan,

Khilan Gudka wrote:
> What should one do about these for a sound analysis?

List them as entry points and assume the worst at calls to native 
methods that you don't have simulations for?  Or, create additional 
simulations?  Or (partly), force all static initializers to execute 
before main()?

Now I want to step back and ask something else.  What are you actually 
trying to do?  I gather you:

1) have a context-sensitive analysis
2) are duplicating method bodies
3) care about soundness in the call graph
4) want to compute which objects are accessed by a given block of code
5) are working on lock inference/allocation (w/ Dave Cunningham, CC'08)

I'm going to guess that it's primarily to do with 5).  Have you looked 
at Richard's lock allocation analyses in Soot?  Are you trying to 
implement your CC'08 paper in Soot?  Did you consider building on and 
integrating with what's already there?  Did you know that we have 
locksets working now?  Here are some slides:

http://www.sable.mcgill.ca/~rhalpe/talks/slides-SABLE-2008-03-07.pdf

and you can find the source code in the Soot trunk.  (Thesis pending.)

Cheers,
Chris

> Thanks,
> Khilan
> 
> On 11/03/2008, *Khilan Gudka* <khilan.gudka at imperial.ac.uk 
> <mailto:khilan.gudka at imperial.ac.uk>> wrote:
> 
>     Dear All,
> 
>     I'm running soot + spark with Sun Java 1.5 with 1.3 libs
>     (rt.jar,tools.jar,sunrsasign.jar) prepended to the classpath. I've
>     been comparing static and dynamic call graphs (using probe with soot
>     and starj) and have a question about one particular edge that
>     appears at run-time but doesn't appear in spark's call graph:
> 
>     java.security.Security: initialize() ===> java.lang.ref.Finalizer:
>     register(Ljava/lang/Object;)
> 
>     The call to register(Object) exists because a FileInputStream is
>     constructed in initialize(), which has a finalize() method. Why does
>     it not appear in spark's call graph? This class isn't loaded by
>     reflection, so the -dynamic-class flag doesn't work,
>     register(Object) is an implicit invokation by the JVM.
> 
>     Any help would be greatly appreciated.
> 
>     Thanks,
>     Khilan
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 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