Class SimplePathEnumerator
java.lang.Object
edu.umd.cs.findbugs.ba.SimplePathEnumerator
- All Implemented Interfaces:
DFSEdgeTypes, EdgeTypes, DFSEdgeTypes
Object to enumerate (some subset of) the simple paths in a CFG. A simple path is a path from entry to exit, ignoring backedges and unhandled exceptions.
FIXME: instead of storing the simple paths, should invoke a callback as each simple path is produced. That would save memory.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final CFGprivate static final booleanstatic final intDefault number of steps to be performed in path enumeration.private final DepthFirstSearchprivate final intprivate final intprivate intFields inherited from interface DFSEdgeTypes
BACK_EDGE, CROSS_EDGE, FORWARD_EDGE, TREE_EDGE, UNKNOWN_EDGEFields inherited from interface EdgeTypes
BACKEDGE_SOURCE_EDGE, BACKEDGE_TARGET_EDGE, CHECKED_EXCEPTIONS_FLAG, EXIT_EDGE, EXPLICIT_EXCEPTIONS_FLAG, FALL_THROUGH_EDGE, GOTO_EDGE, HANDLED_EXCEPTION_EDGE, IFCMP_EDGE, JSR_EDGE, RET_EDGE, RETURN_EDGE, START_EDGE, SWITCH_DEFAULT_EDGE, SWITCH_EDGE, UNHANDLED_EXCEPTION_EDGE, UNKNOWN_EDGE -
Constructor Summary
ConstructorsConstructorDescriptionSimplePathEnumerator(CFG cfg, int maxPaths) Constructor; max work is set to DEFAULT_MAX_WORK.SimplePathEnumerator(CFG cfg, int maxPaths, int maxWork) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionEnumerate the simple paths.iterator()Iterate over simple paths.private voidwork(LinkedList<Edge> partialPath)
-
Field Details
-
cfg
-
dfs
-
maxPaths
private final int maxPaths -
maxWork
private final int maxWork -
work
private int work -
pathList
-
DEBUG
private static final boolean DEBUG -
DEFAULT_MAX_WORK
public static final int DEFAULT_MAX_WORKDefault number of steps to be performed in path enumeration.- See Also:
-
-
Constructor Details
-
SimplePathEnumerator
Constructor.- Parameters:
cfg- the control flow graph to enumerate simple paths ofmaxPaths- maximum number of simple paths to findmaxWork- maximum number of steps to be performed in the path enumeration (to handle exponential blowup of search space)
-
SimplePathEnumerator
Constructor; max work is set to DEFAULT_MAX_WORK.- Parameters:
cfg- the control flow graph to enumerate simple paths ofmaxPaths- maximum number of simple paths to find
-
-
Method Details
-
enumerate
-
iterator
-
work
-