Class ICFG


  • public class ICFG
    extends java.lang.Object
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ICFG.CallResolutionStrategy
      An interface to define alternate strategies for call summary and callsite resolution
      static class  ICFG.DefaultCallResolutionStrategy
      This class uses the default call resolution strategy provided by each toolbox provider For C/C++ and Java this is a class hierarchy analysis
    • Constructor Summary

      Constructors 
      Constructor Description
      ICFG​(com.ensoftcorp.atlas.core.db.graph.Node entryPointFunction)
      Compute the ICFG given an entry point function and all functions expandable using the default call resolution strategy
      ICFG​(com.ensoftcorp.atlas.core.db.graph.Node entryPointFunction, com.ensoftcorp.atlas.core.db.set.AtlasSet<com.ensoftcorp.atlas.core.db.graph.Node> functionsToExpand)
      Compute the ICFG given an entry point function and a set of functions to expand using the default call resolution strategy
      ICFG​(com.ensoftcorp.atlas.core.db.graph.Node entryPointFunction, com.ensoftcorp.atlas.core.db.set.AtlasSet<com.ensoftcorp.atlas.core.db.graph.Node> functionsToExpand, ICFG.CallResolutionStrategy callResolutionStrategy)
      Compute the ICFG given an entry point function and a set of functions to expand as well as a call resolution strategy
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.ensoftcorp.atlas.core.db.graph.Node getEntryPointFunction()
      Returns the entry point function
      com.ensoftcorp.atlas.core.db.set.AtlasSet<com.ensoftcorp.atlas.core.db.graph.Node> getEntryPointFunctionExits()
      Returns the entry point function exits
      com.ensoftcorp.atlas.core.db.graph.Node getEntryPointFunctionRoots()
      Returns the entry point function roots
      com.ensoftcorp.atlas.core.query.Q getICFG()
      Returns the ICFG
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ICFGEdge

        public static java.lang.String ICFGEdge
      • ICFGEntryEdge

        public static java.lang.String ICFGEntryEdge
      • ICFGExitEdge

        public static java.lang.String ICFGExitEdge
      • ICFGCallsiteAttribute

        public static java.lang.String ICFGCallsiteAttribute
    • Constructor Detail

      • ICFG

        public ICFG​(com.ensoftcorp.atlas.core.db.graph.Node entryPointFunction)
        Compute the ICFG given an entry point function and all functions expandable using the default call resolution strategy
        Parameters:
        entryPointFunction -
        functionsToExpand -
      • ICFG

        public ICFG​(com.ensoftcorp.atlas.core.db.graph.Node entryPointFunction,
                    com.ensoftcorp.atlas.core.db.set.AtlasSet<com.ensoftcorp.atlas.core.db.graph.Node> functionsToExpand)
        Compute the ICFG given an entry point function and a set of functions to expand using the default call resolution strategy
        Parameters:
        entryPointFunction -
        functionsToExpand -
      • ICFG

        public ICFG​(com.ensoftcorp.atlas.core.db.graph.Node entryPointFunction,
                    com.ensoftcorp.atlas.core.db.set.AtlasSet<com.ensoftcorp.atlas.core.db.graph.Node> functionsToExpand,
                    ICFG.CallResolutionStrategy callResolutionStrategy)
        Compute the ICFG given an entry point function and a set of functions to expand as well as a call resolution strategy
        Parameters:
        entryPointFunction - The function to start the ICFG at
        functionsToExpand - If this is empty then all functions with non-empty CFGs will be expanded
        callResolutionStrategy - The call resolution strategy to use
    • Method Detail

      • getEntryPointFunction

        public com.ensoftcorp.atlas.core.db.graph.Node getEntryPointFunction()
        Returns the entry point function
        Returns:
      • getEntryPointFunctionRoots

        public com.ensoftcorp.atlas.core.db.graph.Node getEntryPointFunctionRoots()
        Returns the entry point function roots
        Returns:
      • getEntryPointFunctionExits

        public com.ensoftcorp.atlas.core.db.set.AtlasSet<com.ensoftcorp.atlas.core.db.graph.Node> getEntryPointFunctionExits()
        Returns the entry point function exits
        Returns:
      • getICFG

        public com.ensoftcorp.atlas.core.query.Q getICFG()
        Returns the ICFG
        Returns: