[Soot-list] Rebuilding the context sensitive call graph
Khilan Gudka
khilan.gudka at imperial.ac.uk
Thu Jan 31 21:28:56 EST 2008
Chris Pickett wrote:
> Khilan Gudka wrote:
>> Ok, so from what I understand, the call graph will record this fact by
>> adding an edge from the specialinvoke statement to the corresponding
>> target method that will be called (which it can determine statically
>> as you said). So, even if it was dynamic dispatch, would it not still
>> invoke the method I have duplicated? Although, does the jvm expect the
>> method to also exist in all superclasses up to the reference type?
>> Does the jvm perform such checks?
>
> I think you are going to run into lots problems if you want to execute
> these programs. It is very much worth your time to make very simple
> examples work and build on them until you handle all the complexity you
> need to. It is also worth your time to read the relevant bits of the
> JVM Specification. Renaming <init> is not really doable in my humble
> opinion; like I said, you might want to try overloading it. (You
> shouldn't have to touch <clinit>.)
>
> Chris
So would that involve introducing a dummy type for a context? 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?
--
Khilan Gudka
PhD Student
Department of Computing
Imperial College London
http://www.khilan.com/
More information about the Soot-list
mailing list