Class AbstractStoredProgramContext

Constructor Detail

  • Method Detail

    • flushProcessorContextWriteCache

      public void flushProcessorContextWriteCache()
      Flush any cached context not yet written to database
    • invalidateProcessorContextWriteCache

      public void invalidateProcessorContextWriteCache()
      Flush any cached context not yet written to database
    • getRegisterValue

      public RegisterValue getRegisterValue​(Register register,
                                            Address address)
      Description copied from interface: ProgramContext
      Returns a register value and mask for the given register.
      Parameters:
      register - the register
      address - the address of the value
      Returns:
      a register value and mask for the given register
    • getValue

      public java.math.BigInteger getValue​(Register register,
                                           Address address,
                                           boolean signed)
      Description copied from interface: ProgramContext
      Returns the value assigned to a register at a given address. This method will return any default value assigned to the register at the given address if no explicit value has been set at that address.
      Parameters:
      register - the register for which to get its value.
      address - the address at which to get a value.
      signed - if true, interprets the fix-bit size register value as a signed value.
      Returns:
      a BigInteger object containing the value of the registe at the given address or null if no value has been assigned.
    • getRegisterValueAddressRanges

      public AddressRangeIterator getRegisterValueAddressRanges​(Register register)
      Description copied from interface: ProgramContext
      Returns an AddressRangeIterator over all addresses that have an associated value for the given register. Each range returned will have the same value associated with the register for all addresses in that range.
      Parameters:
      register - the register for which to get set value ranges.
      Returns:
      An AddressRangeIterator over all address that have values for the given register.
    • getRegisterValueRangeContaining

      public AddressRange getRegisterValueRangeContaining​(Register register,
                                                          Address addr)
      Description copied from interface: ProgramContext
      Returns the bounding address-range containing addr and the the same RegisterValue throughout. The range returned may be limited by other value changes associated with register's base-register.
      Returns:
      single register-value address-range containing addr
    • getRegisterValueAddressRanges

      public AddressRangeIterator getRegisterValueAddressRanges​(Register register,
                                                                Address start,
                                                                Address end)
      Description copied from interface: ProgramContext
      Returns an AddressRangeIterator over all addresses that have an associated value within the given range for the given register. Each range returned will have the same value associated with the register for all addresses in that range.
      Parameters:
      register - the register for which to get set value ranges.
      Returns:
      An AddressRangeIterator over all address within the given range that have values for the given register.
    • getDefaultRegisterValueAddressRanges

      public AddressRangeIterator getDefaultRegisterValueAddressRanges​(Register register)
      Description copied from interface: ProgramContext
      Returns an AddressRangeIterator over all addresses that have an associated default value for the given register. Each range returned will have the same default value associated with the register for all addresses in that range.
      Parameters:
      register - the register for which to get set default value ranges.
      Returns:
      An AddressRangeIterator over all address that have default values for the given register.
    • getDefaultRegisterValueAddressRanges

      public AddressRangeIterator getDefaultRegisterValueAddressRanges​(Register register,
                                                                       Address start,
                                                                       Address end)
      Description copied from interface: ProgramContext
      Returns an AddressRangeIterator over all addresses that have an associated default value within the given range for the given register. Each range returned will have the same default value associated with the register for all addresses in that range.
      Parameters:
      register - the register for which to get default value ranges.
      Returns:
      An AddressRangeIterator over all address within the given range that have default values for the given register.
    • getRegistersWithValues

      public Register[] getRegistersWithValues()
      Description copied from interface: ProgramContext
      Returns an array of all registers that at least one value associated with an address.
      Returns:
      a array of all registers that at least one value associated with an address.
    • hasValueOverRange

      public boolean hasValueOverRange​(Register reg,
                                       java.math.BigInteger value,
                                       AddressSetView addrSet)
      Description copied from interface: ProgramContext
      Returns true if the given register has the value over the addressSet
      Parameters:
      reg - the register whose value is to be tested.
      value - the value to test for.
      addrSet - the set of addresses to test
      Returns:
      true if every address in the addrSet has the value.
    • setValue

      public void setValue​(Register register,
                           Address start,
                           Address end,
                           java.math.BigInteger value)
                    throws ContextChangeException
      Description copied from interface: ProgramContext
      Associates a value with a register over a given address range. Any previous values will be overwritten.
      Parameters:
      register - the register for which to assign a value.
      start - the start address.
      end - the end address (inclusive).
      value - the value to assign. A value of null will effective clear any existing values.
      Throws:
      ContextChangeException
    • setDefaultValue

      public void setDefaultValue​(RegisterValue registerValue,
                                  Address start,
                                  Address end)
      Description copied from interface: DefaultProgramContext
      Associates a default value with the given register over the given range.
      Parameters:
      registerValue - the register for which to associate a default value.
      start - the start address.
      end - the end address (inclusive)
    • getDefaultValue

      public RegisterValue getDefaultValue​(Register register,
                                           Address address)
      Description copied from interface: ProgramContext
      Returns the default value of a register at a given address.
      Parameters:
      register - the register for which to get a default value.
      address - the address at which to get a default value.
      Returns:
      the default value of the register at the given address or null if no default value has been assigned.
    • getNonDefaultValue

      public RegisterValue getNonDefaultValue​(Register register,
                                              Address address)
      Description copied from interface: ProgramContext
      Returns the (non-default)value assigned to a register at a given address.
      Parameters:
      register - the register for which to get its value.
      address - the address at which to get a value.
      Returns:
      a RegisterValue object containing the value of the register at the given address or possibly null if no value has been assigned.
    • createNewRangeMapAdapter NEW

      protected abstract RangeMapAdapter createNewRangeMapAdapter​(Register baseRegister)
    • invalidateReadCache NEW

      protected void invalidateReadCache()
    • invalidateWriteCache NEW

      protected void invalidateWriteCache()
    • getDisassemblyContext

      public RegisterValue getDisassemblyContext​(Address address)
      Description copied from interface: ProgramContext
      Get the disassembly context for a specified address. This context is formed from the default disassembly context and the context register value stored at the specified address. Those bits specified by the stored context value take precedence.
      Returns:
      disassembly context register value