Class JvmMemoryLocation

java.lang.Object
proguard.analysis.cpa.jvm.witness.JvmMemoryLocation
Direct Known Subclasses:
JvmLocalVariableLocation, JvmStackLocation, JvmStaticFieldLocation

public abstract class JvmMemoryLocation extends Object
A JvmMemoryLocation points at a specific location in a certain state of the Jvm. For example a JvmStackLocation with index 0 indicates the top of the stack.
  • Constructor Details

    • JvmMemoryLocation

      public JvmMemoryLocation()
  • Method Details

    • extractValueOrDefault

      public abstract <T extends AbstractState<T>> T extractValueOrDefault(JvmAbstractState<T> jvmState, T defaultValue)
      Given a JVM state, extract its content in the position represented by this JvmMemoryLocation.
      Type Parameters:
      T - The type of the states contained in the JVM state. e.g., for taint analysis this would be a SetAbstractState containing the taints and for value analysis a ValueAbstractState.
      Parameters:
      jvmState - The state from which the value is extracted.
      defaultValue - The value returned if it's not possible to extract the value.
      Returns:
      The value from the JVM abstract state for the memory location represented by this object. Or default value if not possible.
    • equals

      public abstract boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public abstract int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public abstract String toString()
      Overrides:
      toString in class Object