类 JvmMemoryLocationAbstractState<ContentT extends AbstractState<ContentT>>
java.lang.Object
proguard.analysis.cpa.jvm.domain.memory.JvmMemoryLocationAbstractState<ContentT>
- 类型参数:
ContentT- The content of the jvm states for the traced analysis. For example, this can be aSetAbstractStateof taints for taint analysis or aValueAbstractStatefor value analysis.
- 所有已实现的接口:
BamLocationDependent<ContentT>,AbstractState<JvmMemoryLocationAbstractState<ContentT>>,ProgramLocationDependent
public class JvmMemoryLocationAbstractState<ContentT extends AbstractState<ContentT>>
extends Object
implements AbstractState<JvmMemoryLocationAbstractState<ContentT>>, ProgramLocationDependent, BamLocationDependent<ContentT>
This
AbstractState consists of a BamLocationDependentJvmMemoryLocation with a set
of sources contributed into its value and the call stack that generated it.-
嵌套类概要
嵌套类修饰符和类型类说明static classAn entry of the call stack of the state. -
构造器概要
构造器构造器说明JvmMemoryLocationAbstractState(BamLocationDependentJvmMemoryLocation<ContentT> locationDependentMemoryLocation) Create aJvmMemoryLocationAbstractStatewith empty source locations and call stack.JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet) Create aJvmMemoryLocationAbstractStatewith empty source locations and call stack.JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet, LinkedList<JvmMemoryLocationAbstractState.StackEntry<ContentT>> callStack) Create aJvmMemoryLocationAbstractStatewith empty source locations.JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet, Set<BamLocationDependentJvmMemoryLocation<ContentT>> sourceLocations) Create aJvmMemoryLocationAbstractStatewith empty call stack.JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet, Set<BamLocationDependentJvmMemoryLocation<ContentT>> sourceLocations, LinkedList<JvmMemoryLocationAbstractState.StackEntry<ContentT>> callStack) Create aJvmMemoryLocationAbstractStatewith source locations. -
方法概要
修饰符和类型方法说明voidaddSourceLocation(BamLocationDependentJvmMemoryLocation<ContentT> sourceLocation) Adds a source location to the source set.booleancallStackContains(MethodSignature signature) Returns true if a method is present in the call stack.copy()Creates a copy of itself.Returns a shallow copy of the call stack.booleanReturns the program location.Returns the source set.Returns the reached set the abstract state belongs to.inthashCode()booleanisLessOrEqual(JvmMemoryLocationAbstractState<ContentT> abstractState) Compares itself to theabstractState(i.e., compare the states on the partial order provided by the domain of the analysis).join(JvmMemoryLocationAbstractState<ContentT> abstractState) Computes a join over itself and another abstract stateabstractState(i.e., finds the least upper bound on the semilattice).Returns the information of the caller, null if the caller of the method the state belongs to is unknown.voidsetProgramLocation(JvmCfaNode programLocation) Sets the program location.voidsetSourceReachedSet(ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet) Sets the reached set the abstract state belongs to.static <ContentT extends AbstractState<ContentT>>
JvmMemoryLocationAbstractState<ContentT>top()Get the top state of the semi lattice for the given content type.从接口继承的方法 proguard.analysis.cpa.interfaces.AbstractState
getPrecision, isLess
-
构造器详细资料
-
JvmMemoryLocationAbstractState
public JvmMemoryLocationAbstractState(BamLocationDependentJvmMemoryLocation<ContentT> locationDependentMemoryLocation) Create aJvmMemoryLocationAbstractStatewith empty source locations and call stack.- 参数:
locationDependentMemoryLocation- aJvmMemoryLocationin a specified program location coming from a specific reached set.
-
JvmMemoryLocationAbstractState
public JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet) Create aJvmMemoryLocationAbstractStatewith empty source locations and call stack.- 参数:
memoryLocation- a memory location.programLocation- the program location of the memory location.sourceReachedSet- the reached set of the traced analysis from which the analyzed state comes from.
-
JvmMemoryLocationAbstractState
public JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet, Set<BamLocationDependentJvmMemoryLocation<ContentT>> sourceLocations) Create aJvmMemoryLocationAbstractStatewith empty call stack.- 参数:
memoryLocation- a memory location.programLocation- the program location of the memory location.sourceReachedSet- the reached set of the traced analysis from which the analyzed state comes from.sourceLocations- the succcessor memory locations.
-
JvmMemoryLocationAbstractState
public JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet, LinkedList<JvmMemoryLocationAbstractState.StackEntry<ContentT>> callStack) Create aJvmMemoryLocationAbstractStatewith empty source locations.- 参数:
memoryLocation- a memory location.programLocation- the program location of the memory location.sourceReachedSet- the reached set of the traced analysis from which the analyzed state comes from.callStack- the call stack.
-
JvmMemoryLocationAbstractState
public JvmMemoryLocationAbstractState(JvmMemoryLocation memoryLocation, JvmCfaNode programLocation, ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet, Set<BamLocationDependentJvmMemoryLocation<ContentT>> sourceLocations, LinkedList<JvmMemoryLocationAbstractState.StackEntry<ContentT>> callStack) Create aJvmMemoryLocationAbstractStatewith source locations.- 参数:
memoryLocation- a memory location.programLocation- the program location of the memory location.sourceReachedSet- the reached set of the traced analysis from which the analyzed state comes from.sourceLocations- the succcessor memory locations.callStack- the call stack.
-
-
方法详细资料
-
getLocationDependentMemoryLocation
-
peekCallStack
Returns the information of the caller, null if the caller of the method the state belongs to is unknown. -
callStackContains
Returns true if a method is present in the call stack. -
copyStack
Returns a shallow copy of the call stack. -
join
public JvmMemoryLocationAbstractState<ContentT> join(JvmMemoryLocationAbstractState<ContentT> abstractState) 从接口复制的说明:AbstractStateComputes a join over itself and another abstract stateabstractState(i.e., finds the least upper bound on the semilattice).- 指定者:
join在接口中AbstractState<ContentT extends AbstractState<ContentT>>
-
isLessOrEqual
从接口复制的说明:AbstractStateCompares itself to theabstractState(i.e., compare the states on the partial order provided by the domain of the analysis).- 指定者:
isLessOrEqual在接口中AbstractState<ContentT extends AbstractState<ContentT>>
-
getProgramLocation
从接口复制的说明:ProgramLocationDependentReturns the program location.- 指定者:
getProgramLocation在接口中ProgramLocationDependent
-
setProgramLocation
从接口复制的说明:ProgramLocationDependentSets the program location.- 指定者:
setProgramLocation在接口中ProgramLocationDependent
-
getSourceReachedSet
从接口复制的说明:BamLocationDependentReturns the reached set the abstract state belongs to.- 指定者:
getSourceReachedSet在接口中BamLocationDependent<ContentT extends AbstractState<ContentT>>
-
setSourceReachedSet
public void setSourceReachedSet(ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> sourceReachedSet) 从接口复制的说明:BamLocationDependentSets the reached set the abstract state belongs to.- 指定者:
setSourceReachedSet在接口中BamLocationDependent<ContentT extends AbstractState<ContentT>>
-
addSourceLocation
Adds a source location to the source set. -
getSourceLocations
Returns the source set. -
copy
从接口复制的说明:AbstractStateCreates a copy of itself.- 指定者:
copy在接口中AbstractState<ContentT extends AbstractState<ContentT>>
-
equals
- 指定者:
equals在接口中AbstractState<ContentT extends AbstractState<ContentT>>- 覆盖:
equals在类中Object
-
hashCode
public int hashCode()- 指定者:
hashCode在接口中AbstractState<ContentT extends AbstractState<ContentT>>- 覆盖:
hashCode在类中Object
-
top
public static <ContentT extends AbstractState<ContentT>> JvmMemoryLocationAbstractState<ContentT> top()Get the top state of the semi lattice for the given content type.- 类型参数:
ContentT- The content of the jvm states. For example, this can be aSetAbstractStateof taints for taint analysis or aValueAbstractStatefor value analysis.
-