Package proguard.analysis.cpa.jvm.util
Class JvmBamCpaRun<CpaT extends ConfigurableProgramAnalysis,AbstractStateT extends LatticeAbstractState<AbstractStateT>,OuterAbstractStateT extends AbstractState>
- java.lang.Object
-
- proguard.analysis.cpa.defaults.CpaRun<BamCpa<CfaNodeT,CfaEdgeT,SignatureT>,AbstractStateT>
-
- proguard.analysis.cpa.defaults.BamCpaRun<CpaT,OuterAbstractStateT,JvmCfaNode,JvmCfaEdge,MethodSignature>
-
- proguard.analysis.cpa.jvm.util.JvmBamCpaRun<CpaT,AbstractStateT,OuterAbstractStateT>
-
- Direct Known Subclasses:
JvmTaintBamCpaRun
,JvmValueBamCpaRun
public abstract class JvmBamCpaRun<CpaT extends ConfigurableProgramAnalysis,AbstractStateT extends LatticeAbstractState<AbstractStateT>,OuterAbstractStateT extends AbstractState> extends BamCpaRun<CpaT,OuterAbstractStateT,JvmCfaNode,JvmCfaEdge,MethodSignature>
A JVM instance ofBamCpaRun
uses a reached set optimized for program location-dependent analysis.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JvmBamCpaRun.Builder
A builder forJvmBamCpaRun
.
-
Field Summary
Fields Modifier and Type Field Description protected JvmCfa
cfa
HeapModel
heapModel
-
Fields inherited from class proguard.analysis.cpa.defaults.BamCpaRun
reduceHeap
-
Fields inherited from class proguard.analysis.cpa.defaults.CpaRun
abortOperator, cpa
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
JvmBamCpaRun(JvmCfa cfa, int maxCallStackDepth)
Create a JVM BAM CPA run.protected
JvmBamCpaRun(JvmCfa cfa, int maxCallStackDepth, HeapModel heapModel, AbortOperator abortOperator, boolean reduceHeap)
Create a JVM BAM CPA run.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ReachedSet
createReachedSet()
Returns an emptyReachedSet
.ReduceOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>
createReduceOperator()
Returns the reduce operator.JvmCfa
getCfa()
Returns the CFA.-
Methods inherited from class proguard.analysis.cpa.defaults.BamCpaRun
createCache, createExpandOperator, createIntraproceduralCPA, createRebuildOperator, getAnalyzedMethods, getCpa, getMainSignature, getMaxCallStackDepth
-
Methods inherited from class proguard.analysis.cpa.defaults.CpaRun
createWaitlist, execute, getAbortOperator, getInitialStates
-
-
-
-
Constructor Detail
-
JvmBamCpaRun
protected JvmBamCpaRun(JvmCfa cfa, int maxCallStackDepth)
Create a JVM BAM CPA run.- Parameters:
cfa
- a CFAmaxCallStackDepth
- the maximum depth of the call stack analyzed interprocedurally 0 means intraprocedural analysis < 0 means no maximum depth
-
JvmBamCpaRun
protected JvmBamCpaRun(JvmCfa cfa, int maxCallStackDepth, HeapModel heapModel, AbortOperator abortOperator, boolean reduceHeap)
Create a JVM BAM CPA run.- Parameters:
cfa
- a CFAmaxCallStackDepth
- the maximum depth of the call stack analyzed interprocedurally 0 means intraprocedural analysis < 0 means no maximum depthabortOperator
- an abort operatorreduceHeap
- whether reduction/expansion of the heap state is performed at call/return sites
-
-
Method Detail
-
getCfa
public JvmCfa getCfa()
Description copied from class:BamCpaRun
Returns the CFA.- Specified by:
getCfa
in classBamCpaRun<CpaT extends ConfigurableProgramAnalysis,OuterAbstractStateT extends AbstractState,JvmCfaNode,JvmCfaEdge,MethodSignature>
-
createReduceOperator
public ReduceOperator<JvmCfaNode,JvmCfaEdge,MethodSignature> createReduceOperator()
Description copied from class:BamCpaRun
Returns the reduce operator.- Specified by:
createReduceOperator
in classBamCpaRun<CpaT extends ConfigurableProgramAnalysis,OuterAbstractStateT extends AbstractState,JvmCfaNode,JvmCfaEdge,MethodSignature>
-
createReachedSet
protected ReachedSet createReachedSet()
Description copied from class:CpaRun
Returns an emptyReachedSet
.- Overrides:
createReachedSet
in classCpaRun<BamCpa<JvmCfaNode,JvmCfaEdge,MethodSignature>,OuterAbstractStateT extends AbstractState>
-
-