[Soot-list] Missing call graph edges
Peter Kim
chpkim at gmail.com
Thu Feb 5 18:04:44 EST 2015
Hi,
I'm extending FlowDroid to construct an Android app's call graph. More
specifically, I get the call graph by modifying Infoflow.runAnalysis(final
ISourceSinkManager sourcesSinks, final Set<String> additionalSeeds) to call
Scene.v().getCallGraph(). The call graph is missing edges in an odd way -
for a function, the graph has some outgoing edges but is missing ones that
should be there. Namely, given the following function (shown in Java rather
than jimple for readability), the called methods should be "get()",
"isFinished()", "remove()", "free()", "size()", "update()", but I'm only
getting "get()", "size()", and "remove()". I don't understand why
"remove()" is included but "free()" is not since they are in the same basic
block. I'm using soot.jimple.toolkits.callgraph.TransitiveTargets to
analyze the call graph.
public void update(float x) {
for (...size()..) {
get();
if (isFinished()) {
remove();
free();
}
}
if (y) {
if (x) {
for (... size()...) get().update(x);
} else {
for (...size()...) get().update(x);
}
}
}
Thank you for your help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20150205/dcffc3db/attachment.html
More information about the Soot-list
mailing list