Class DynamicEntry


  • public class DynamicEntry
    extends SymbolEntry
    A HighSymbol mapping based on local hashing of the symbol's Varnode within a function's syntax tree. The storage address of a temporary Varnode (a Varnode in the "unique" address space) is too ephemeral to use as a permanent way to identify it. This symbol stores a hash (generated by DynamicHash) that is better suited to identifying the Varnode.
    • Constructor Detail

      • DynamicEntry

        public DynamicEntry​(HighSymbol sym)
        Constructor for use with restoreXML
        Parameters:
        sym - is the owning HighSymbol
      • DynamicEntry

        public DynamicEntry​(HighSymbol sym,
                            Address addr,
                            long h)
        Construct given the underlying symbol, defining Address of the Varnode, and the hash value
        Parameters:
        sym - is the given symbol
        addr - is the defining Address
        h - is the hash value
    • Method Detail

      • getHash

        public long getHash()
        Returns:
        the hash value
      • saveXml

        public void saveXml​(java.lang.StringBuilder buf)
        Description copied from class: SymbolEntry
        Save this entry as (a set of) XML tags to the given stream
        Specified by:
        saveXml in class SymbolEntry
        Parameters:
        buf - is the given stream
      • getStorage

        public VariableStorage getStorage()
        Description copied from class: SymbolEntry
        Get the storage associated with this particular mapping of the Symbol
        Specified by:
        getStorage in class SymbolEntry
        Returns:
        the storage object
      • build

        public static DynamicEntry build​(Varnode vn)
        Build a new DynamicEntry, given the underlying temporary Varnode attached to a symbol. The hash is created from local information in the syntax tree near the Varnode.
        Parameters:
        vn - is the underlying Varnode
        Returns:
        the new DynamicEntry
      • getSize

        public int getSize()
        Description copied from class: SymbolEntry
        Get the number of bytes consumed by the symbol when using this storage
        Specified by:
        getSize in class SymbolEntry
        Returns:
        the size of this entry
      • isReadOnly

        public boolean isReadOnly()
        Specified by:
        isReadOnly in class SymbolEntry
        Returns:
        true if the mapped storage is read-only
      • isVolatile

        public boolean isVolatile()
        Specified by:
        isVolatile in class SymbolEntry
        Returns:
        true if the mapped storage is volatile