类 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 java.lang.Object implements AbstractState<JvmMemoryLocationAbstractState<ContentT>>, ProgramLocationDependent, BamLocationDependent<ContentT>
ThisAbstractStateconsists of aBamLocationDependentJvmMemoryLocationwith a set of sources contributed into its value and the call stack that generated it.
-
-
嵌套类概要
嵌套类 修饰符和类型 类 说明 static classJvmMemoryLocationAbstractState.StackEntry<ContentT extends AbstractState<ContentT>>An entry of the call stack of the state.
-
构造器概要
-
方法概要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 说明 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.JvmMemoryLocationAbstractState<ContentT>copy()Creates a copy of itself.java.util.LinkedList<JvmMemoryLocationAbstractState.StackEntry<ContentT>>copyStack()Returns a shallow copy of the call stack.booleanequals(java.lang.Object obj)BamLocationDependentJvmMemoryLocation<ContentT>getLocationDependentMemoryLocation()JvmCfaNodegetProgramLocation()Returns the program location.java.util.Set<BamLocationDependentJvmMemoryLocation<ContentT>>getSourceLocations()Returns the source set.ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>>getSourceReachedSet()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).JvmMemoryLocationAbstractState<ContentT>join(JvmMemoryLocationAbstractState<ContentT> abstractState)Computes a join over itself and another abstract stateabstractState(i.e., finds the least upper bound on the semilattice).JvmMemoryLocationAbstractState.StackEntry<ContentT>peekCallStack()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, java.util.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, java.util.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, java.util.Set<BamLocationDependentJvmMemoryLocation<ContentT>> sourceLocations, java.util.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
public BamLocationDependentJvmMemoryLocation<ContentT> getLocationDependentMemoryLocation()
-
peekCallStack
public JvmMemoryLocationAbstractState.StackEntry<ContentT> peekCallStack()
Returns the information of the caller, null if the caller of the method the state belongs to is unknown.
-
callStackContains
public boolean callStackContains(MethodSignature signature)
Returns true if a method is present in the call stack.
-
copyStack
public java.util.LinkedList<JvmMemoryLocationAbstractState.StackEntry<ContentT>> 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
public boolean isLessOrEqual(JvmMemoryLocationAbstractState<ContentT> abstractState)
从接口复制的说明: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
public JvmCfaNode getProgramLocation()
从接口复制的说明:ProgramLocationDependentReturns the program location.- 指定者:
getProgramLocation在接口中ProgramLocationDependent
-
setProgramLocation
public void setProgramLocation(JvmCfaNode programLocation)
从接口复制的说明:ProgramLocationDependentSets the program location.- 指定者:
setProgramLocation在接口中ProgramLocationDependent
-
getSourceReachedSet
public ProgramLocationDependentReachedSet<JvmAbstractState<ContentT>> 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
public void addSourceLocation(BamLocationDependentJvmMemoryLocation<ContentT> sourceLocation)
Adds a source location to the source set.
-
getSourceLocations
public java.util.Set<BamLocationDependentJvmMemoryLocation<ContentT>> getSourceLocations()
Returns the source set.
-
copy
public JvmMemoryLocationAbstractState<ContentT> copy()
从接口复制的说明:AbstractStateCreates a copy of itself.- 指定者:
copy在接口中AbstractState<ContentT extends AbstractState<ContentT>>
-
equals
public boolean equals(java.lang.Object obj)
- 指定者:
equals在接口中AbstractState<ContentT extends AbstractState<ContentT>>- 覆盖:
equals在类中java.lang.Object
-
hashCode
public int hashCode()
- 指定者:
hashCode在接口中AbstractState<ContentT extends AbstractState<ContentT>>- 覆盖:
hashCode在类中java.lang.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.
-
-