Class PseudoDisassemblerContext

    • Constructor Detail

      • PseudoDisassemblerContext

        public PseudoDisassemblerContext​(ProgramContext context)
    • Method Detail

      • setFutureRegisterValue

        public void setFutureRegisterValue​(Address address,
                                           RegisterValue value)
        Description copied from interface: DisassemblerContext
        Combines value with any previously saved future register value at address or any value stored in the program if there is no previously saved future value. Use this method when multiple flows to the same address don't matter or the flowing from address is unknown.
        When value has conflicting bits with the previously saved value, value will take precedence.
        If the register value is the value for the processor context register and a previously saved value does not exist, the user saved values in the stored context of the program will be used as existing value.
        Specified by:
        setFutureRegisterValue in interface DisassemblerContext
        Parameters:
        address - the address to store the register value
        value - the register value to store at the address
      • clearRegister

        public void clearRegister​(Register register)
        Description copied from interface: ProcessorContext
        Clears the register within this context.
        Specified by:
        clearRegister in interface ProcessorContext
        Parameters:
        register - register to be cleared.
      • getRegister

        public Register getRegister​(java.lang.String name)
        Description copied from interface: ProcessorContextView
        Get a Register given the name of a register
        Specified by:
        getRegister in interface ProcessorContextView
        Parameters:
        name - the name of the register.
        Returns:
        The register with the given name.
      • getRegisterValue

        public RegisterValue getRegisterValue​(Register register)
        Description copied from interface: ProcessorContextView
        Get the RegisterValue for the given register.
        Specified by:
        getRegisterValue in interface ProcessorContextView
        Parameters:
        register - register to get the value for
        Returns:
        RegisterValue object containing the value of the register if a value exists, otherwise null.
      • getValue

        public java.math.BigInteger getValue​(Register register,
                                             boolean signed)
        Description copied from interface: ProcessorContextView
        Get the contents of a processor register as a BigInteger object
        Specified by:
        getValue in interface ProcessorContextView
        Parameters:
        register - register to get the value for
        Returns:
        a BigInteger object containing the value of the register if a value exists, otherwise null.
      • hasValue

        public boolean hasValue​(Register register)
        Description copied from interface: ProcessorContextView
        Returns true if a value is defined for the given register.
        Specified by:
        hasValue in interface ProcessorContextView
        Parameters:
        register - the register to check for a value.
        Returns:
        true if the given register has a value.
      • setValue

        public void setValue​(Register register,
                             java.math.BigInteger value)
        Description copied from interface: ProcessorContext
        Sets the value for a Register.
        Specified by:
        setValue in interface ProcessorContext
        Parameters:
        register - the register to have its value set
        value - the value for the register (null is not permitted).
      • setValue

        public void setValue​(Register register,
                             Address addr,
                             java.math.BigInteger value)
      • flowStart

        public void flowStart​(Address address)
      • getAddress

        public Address getAddress()
      • flowEnd

        public void flowEnd​(Address address)
      • flowToAddress

        public void flowToAddress​(Address target)
      • copyToFutureFlowState

        public void copyToFutureFlowState​(Address target)
      • setFutureRegisterValue

        public void setFutureRegisterValue​(Address fromAddr,
                                           Address toAddr,
                                           RegisterValue value)
        Description copied from interface: DisassemblerContext
        Combines value with any previously saved future register value at fromAddr/toAddr or any value stored in the program if there is no previously saved future value.
        When value has conflicting bits with the previously saved value, value will take precedence.
        If the register value is the value for the processor context register and a previously saved value does not exist, the user saved values in the stored context of the program will be used as existing value.
        Specified by:
        setFutureRegisterValue in interface DisassemblerContext
        Parameters:
        fromAddr - the address this value if flowing from
        toAddr - the address to store the register value
        value - the register value to store at the address