[Soot-list] Rebuilding the context sensitive call graph

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


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.

Chris


More information about the Soot-list mailing list