[Soot-list] Exceptional edges in control flow analysis in SOOT
wuxiaoquan07 at otcaix.iscas.ac.cn
Sun Sep 26 00:00:59 EDT 2010
When building CFG with exceptional edges, why the ExceptionalUnitGraph adds
edges from the predecessors of the thrower to the catcher?
The relevant code is in the class of
soot.toolkits.graph.ExceptionalUnitGraph, in the method of protected
Set<Unit> buildExceptionalEdges(ThrowAnalysis, Map<Unit,
Collection<ExceptionDest>>, Map<Unit, List<Unit>>, Map<Unit, List<Unit>>,
In Line 479(ExceptionalUnitGraph.java), the comments are as follows:
// We need to recognize:
// - caught exceptions for which we must add edges from the
// thrower's predecessors to the catcher:
// - all exceptions of non-throw instructions;
// - implicit exceptions of throw instructions.
And in Line 538, the for statement is used to add the edges from the
thrower's predecessors to the catcher.
It causes undesired edges in the CFG.
Wu, Xiaoquan 伍晓泉
Technology Center for Software Engineering
Institute of Software, Chinese Academy of Sciences
P.O.Box 8718, Beijing 100190, China
Email: wuxiaoquan07 at otcaix.iscas.ac.cn
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Soot-list