[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