Class ICFG
- java.lang.Object
-
- com.ensoftcorp.open.commons.algorithms.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 resolutionstatic 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
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ICFGCallsiteAttribute
static java.lang.String
ICFGEdge
static java.lang.String
ICFGEntryEdge
static java.lang.String
ICFGExitEdge
-
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 strategyICFG(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 strategyICFG(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 functioncom.ensoftcorp.atlas.core.db.set.AtlasSet<com.ensoftcorp.atlas.core.db.graph.Node>
getEntryPointFunctionExits()
Returns the entry point function exitscom.ensoftcorp.atlas.core.db.graph.Node
getEntryPointFunctionRoots()
Returns the entry point function rootscom.ensoftcorp.atlas.core.query.Q
getICFG()
Returns the ICFG
-
-
-
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 atfunctionsToExpand
- If this is empty then all functions with non-empty CFGs will be expandedcallResolutionStrategy
- 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:
-
-