java.lang.Object
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.MemoryAccessInfo

@Ser public class MemoryAccessInfo extends Object
Memory access information object.
  • Field Details

  • Constructor Details

  • Method Details

    • isMutable

      public boolean isMutable()
    • isNoAccess

      public boolean isNoAccess()
    • isAccessMemory

      public boolean isAccessMemory()
    • isReadMemory

      public boolean isReadMemory()
    • isWriteMemory

      public boolean isWriteMemory()
    • isAccessStack

      public boolean isAccessStack()
    • isReadStack

      public boolean isReadStack()
    • isWriteStack

      public boolean isWriteStack()
    • isAccessGlobals

      public boolean isAccessGlobals()
    • isReadGlobals

      public boolean isReadGlobals()
    • isWriteGlobals

      public boolean isWriteGlobals()
    • hasSpoiledStack

      public boolean hasSpoiledStack()
    • setAccessRanges

      public void setAccessRanges(IdRanges stackReads, IdRanges stackWrites, IdRanges globalsReads, IdRanges globalsWrites)
      The object must be mutable, else this method will throw.
      Throws:
      IllegalStateException - if the object is not mutable
    • setStackAccessRanges

      public void setStackAccessRanges(IdRanges read, IdRanges write)
      The object must be mutable, else this method will throw.
      Throws:
      IllegalStateException - if the object is not mutable
    • getStackReads

      public IdRanges getStackReads()
      The object must be mutable, else this method will throw.
      Throws:
      IllegalStateException - if the object is not mutable
    • getStackWrites

      public IdRanges getStackWrites()
      The object must be mutable, else this method will throw.
      Throws:
      IllegalStateException - if the object is not mutable
    • setGlobalsAccessRanges

      public void setGlobalsAccessRanges(IdRanges read, IdRanges write)
      The object must be mutable, else this method will throw.
      Throws:
      IllegalStateException - if the object is not mutable
    • getGlobalsReads

      public IdRanges getGlobalsReads()
      The object must be mutable, else this method will throw.
      Throws:
      IllegalStateException - if the object is not mutable
    • getGlobalsWrites

      public IdRanges getGlobalsWrites()
      The object must be mutable, else this method will throw.
      Throws:
      IllegalStateException - if the object is not mutable
    • setStackSpoiledRanges

      public void setStackSpoiledRanges(IdRanges spoiled)
      Set the records of bad writes to stack slots.
      Parameters:
      spoiled - optional ranges
    • getStackSpoiledRanges

      public IdRanges getStackSpoiledRanges()
      Retrieve the records of bad writes to stack slots.
      Returns:
      optional ranges
    • clone

      public MemoryAccessInfo clone()
      Overrides:
      clone in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

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

      public String toString()
      Overrides:
      toString in class Object
    • filterGlobalsReads

      public Collection<IEVar> filterGlobalsReads(Collection<IEVar> candidates)
    • filterGlobalsWrites

      public Collection<IEVar> filterGlobalsWrites(Collection<IEVar> candidates)
    • filterStackReads

      public Collection<IEVar> filterStackReads(Collection<IEVar> candidates)
    • filterStackWrites

      public Collection<IEVar> filterStackWrites(Collection<IEVar> candidates)
    • filterStackSpoiled

      public Collection<IEVar> filterStackSpoiled(Collection<IEVar> candidates)