[Soot-list] Context sensitive analysis introduction?
Helge Jensen
helge.jensen at slog.dk
Wed Mar 9 04:33:07 EST 2005
Ondrej Lhotak wrote:
> Soot doesn't really have much of a big picture design for context
> sensitivity.
OK, thanks for the straight answer.
Now, i'm gonna see if I can pump a bit more info out of you :)
Is there any examples/implementations of context-sensitive analysis in
soot that would be instructive to look at?
> graph. Also, I don't think the s.j.t.c.CallGraph structure is
> necessarily appropriate for context-sensitive call graphs, because they
> may be huge, so some more space-efficient implicit representation may be
> better.
Frankly, I'm not too interested in the implementation right now, I just
want to get a feel for what possibilities there are, and make that work
for small programs.
I can't really use the as-is CallGraph anyway, since I need the possible
call-to's given (unit,context), and only edgesOutOf(Unit) is available.
Is the context-sensitive call-graph you have implemented dependent upon
paddle?
> Paddle has an internal call graph interface
I wasn't expecting to use paddle, but I'll have a look at it.
Currently my soot knowledge is way too weak to implement a context
sensitive CallGraph-like analysis.
> If the s.j.t.c.CallGraph interface is appealing to people wanting to
> query context-sensitive call graphs, perhaps at some point, it would be
> worthwhile to make an adapter over the Paddle AbsCallGraph implementing
> the same interface.
Possibly.
Note, that the CallGraph *class* currently maintains state, and provides
mutator functions too. That would (probably) need to change to allow
separation of implementation and query.
My needs boils down to an implementation of something as simple as:
interface ContextSensitiveCallGraph {
MethodAndContext edgesOutOf(Unit u, Context ctx);
Set validContexts(SootMethod m);
}
--
Helge
More information about the Soot-list
mailing list