Class Emulate

java.lang.Object
ghidra.pcode.emulate.Emulate
Direct Known Subclasses:
ModifiedPcodeThread.GlueEmulate

public class Emulate extends Object
  • Constructor Details Link icon

  • Method Details Link icon

    • dispose Link icon

      public void dispose()
    • getLanguage Link icon

      public Language getLanguage()
    • isInstructionStart Link icon

      public boolean isInstructionStart()
    • getExecutionState Link icon

      public EmulateExecutionState getExecutionState()
      Returns:
      the current emulator execution state
    • getExecuteAddress Link icon

      public Address getExecuteAddress()
    • getLastExecuteAddress Link icon

      public Address getLastExecuteAddress()
    • getNewDisassemblerContext Link icon

      public EmulateDisassemblerContext getNewDisassemblerContext()
    • getContextRegisterValue Link icon

      public RegisterValue getContextRegisterValue()
      Returns the current context register value. The context value returned reflects its state when the previously executed instruction was parsed/executed. The context value returned will feed into the next instruction to be parsed with its non-flowing bits cleared and any future context state merged in. If no instruction has been executed, the explicitly set context will be returned. A null value is returned if no context register is defined by the language or initial context has not been set.
    • setContextRegisterValue Link icon

      public void setContextRegisterValue(RegisterValue regValue)
      Sets the context register value at the current execute address. The Emulator should not be running when this method is invoked. Only flowing context bits should be set, as non-flowing bits will be cleared prior to parsing on instruction. In addition, any future context state set by the pcode emitter will take precedence over context set using this method. This method is primarily intended to be used to establish the initial context state.
      Parameters:
      regValue -
    • fallthruOp Link icon

      public void fallthruOp()
    • executeConditionalBranch Link icon

      public void executeConditionalBranch(PcodeOpRaw op)
    • executeBranch Link icon

      public void executeBranch(PcodeOpRaw op)
    • executeCallother Link icon

      public void executeCallother(PcodeOpRaw op) throws UnimplementedCallOtherException
      Throws:
      UnimplementedCallOtherException
    • setExecuteAddress Link icon

      public void setExecuteAddress(Address addr)
    • executeInstruction Link icon

      public void executeInstruction(boolean stopAtBreakpoint, TaskMonitor monitor) throws CancelledException, LowlevelError, InstructionDecodeException
      Throws:
      CancelledException
      LowlevelError
      InstructionDecodeException
    • getMemoryState Link icon

      public MemoryState getMemoryState()
    • executeLoad Link icon

      public void executeLoad(PcodeOpRaw op)
    • executeStore Link icon

      public void executeStore(PcodeOpRaw op)
    • executeBranchind Link icon

      public void executeBranchind(PcodeOpRaw op)
    • executeCall Link icon

      public void executeCall(PcodeOpRaw op)
    • executeCallind Link icon

      public void executeCallind(PcodeOpRaw op)
    • executeMultiequal Link icon

      public void executeMultiequal(PcodeOpRaw op)
    • executeIndirect Link icon

      public void executeIndirect(PcodeOpRaw op)