[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: More on invokeGraphs
> > I'm able to build an InvokeGraph using
> > ClassHeirarchyAnalysis, but not able to
> > make a smaller tree. Any ideas? I know the the classes in
> > jimple.toolkits, but
> > I'm not able to get any of them to reduce the graph size.
>
> Hmm... I don't really know. Actually it should be enough to just apply a
> VariableTypeAnalysis on the graph. But of course it depends on the
> classes you are inspecting, how much the size will be reduced...
>
> Eric
I figured it out, partly.
- Use preciseInvokeGraph to get a small invoke graph. But this breaks if you try
to run VTA, RTA etc. on it later (some sites turn out to be not included in
the invoke graph)
- VTA/RTA do not give smaller graphs in terms of nodes. But you don't need ALL
these nodes(methods). I think that trimming the invokeGraph using one of these
and then asking for transitive Targets of each method in your main file will
give a smaller set of needed methods.
- Calling InvokeGraphTrimmer using PAG gave an invokeGraph with no methods
connected to my main method. Funny, but its probably mea culpa, since I
suspect I'm not using it properly.
Let me know if you have any ideas. Do you have a code fragment that trims an
InvokeGraph using PAG?
The smallest I could get was 2000+ transitive targets for a class that called
nothing but System.out.println(int). Over 5000 methods were in the invoke graph
for just this test file! Any idea how to get fewer nodes in the invokeGraph? I
suspect that the MethodCallGraph is involved.
Ankush
PS: The SPARK analysis in the new Soot release looks pretty neat!
-------------------------------------------------
Ankush Varma
Ph.D. Student / Graduate Research Assistant
DSP-CAD Research Group
Department of Electrical and Computer Engineering
University of Maryland, College Park.
email:
ankush@eng.umd.edu
not_ankush@yahoo.com
Home: 301-439-0438 Office: 301-405-3089
--------------------------------------------------