[Soot-list] Soot/Heros and native methods

Rohan Padhye rohanpadhye at cse.iitb.ac.in
Tue Jun 4 07:21:37 EDT 2013


Hello all,

I was studying role of the call graph while using Heros for 
interprocedural analysis. However, in the code that builds the 
super-graph for Soot 
(https://github.com/Sable/soot/blob/develop/src/soot/jimple/toolkits/ide/icfg/JimpleBasedInterproceduralCFG.java) 
I do not see any handling for native methods. All I see is that for each 
call-graph edge that is either explicit, thread or a static initializer, 
the following is done:

SootMethod m = edge.getTgt().method();
if(m.hasActiveBody())
res.add(m);
else if(IDESolver.DEBUG)
System.err.println("Method "+m.getSignature()+" is referenced but has no 
body!");


It seems that a call to a method without a body is simply ignored 
(resulting in no super-graph edge). Does that mean that the 
"normalFlowFunction" should also be able to handle invoke statements 
(because that's where native calls will go)?

Thanks,
Rohan


More information about the Soot-list mailing list