[Soot-list] Rebuilding the context sensitive call graph

Chris Pickett chris.pickett at mail.mcgill.ca
Thu Jan 31 21:55:09 EST 2008


Chris Pickett wrote:
> Khilan Gudka wrote:
>> So would that involve introducing a dummy type for a context?
> 
> That's just the first idea that came to mind... it seems reasonable, 
> although you'll get a huge number of classes.  You could also pass the 
> context as a parameter and then switch / dispatch on it inside <init>. I 
> guess there are lots of ways to do it, but the fact remains that after a 
> "new" bytecode you are expected to have a specialinvoke to <init>. 
> Some/all/no VM's might ignore that, and the JVM Spec itself might 
> actually be fuzzy... you'll have to see.
> 
>  We
>> realised that statements may implicitly call clinit which was a 
>> painful discovery. However, we decided to ignore clinit edges and 
>> statically determine the classes that are accessed and manually load 
>> them in at the start of the program. This would mean that we wouldn't 
>> have to worry about these types of method invocations during the 
>> analysis. Do you think this is sound?
> 
> Yes, other people (that got papers accepted) have forced all clinit 
> methods to execute before the rest of the code.  I don't have a 
> reference for you though.

Or rather, it's not actually sound, but it's acceptable.

Chris


More information about the Soot-list mailing list