Class SimplePathEnumerator

java.lang.Object
edu.umd.cs.findbugs.ba.SimplePathEnumerator
All Implemented Interfaces:
DFSEdgeTypes, EdgeTypes, DFSEdgeTypes

public class SimplePathEnumerator extends Object implements 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.

Author:
David Hovemeyer
See Also:
  • Field Details

    • DEFAULT_MAX_WORK

      public static final int DEFAULT_MAX_WORK
      Default number of steps to be performed in path enumeration.
      See Also:
  • Constructor Details

    • SimplePathEnumerator

      public SimplePathEnumerator(CFG cfg, int maxPaths, int maxWork)
      Constructor.
      Parameters:
      cfg - the control flow graph to enumerate simple paths of
      maxPaths - maximum number of simple paths to find
      maxWork - maximum number of steps to be performed in the path enumeration (to handle exponential blowup of search space)
    • SimplePathEnumerator

      public SimplePathEnumerator(CFG cfg, int maxPaths)
      Constructor; max work is set to DEFAULT_MAX_WORK.
      Parameters:
      cfg - the control flow graph to enumerate simple paths of
      maxPaths - maximum number of simple paths to find
  • Method Details