Class EmulatorTestRunner

java.lang.Object
ghidra.test.processors.support.EmulatorTestRunner

public class EmulatorTestRunner extends Object
  • Constructor Details

  • Method Details

    • dispose

      public void dispose()
    • getTestGroup

      public PCodeTestGroup getTestGroup()
    • getProgram

      public Program getProgram()
    • getEmulatorHelper

      public EmulatorHelper getEmulatorHelper()
    • setContextRegister

      public void setContextRegister(RegisterValue ctxRegValue)
    • getCurrentAddress

      public Address getCurrentAddress()
    • getCurrentInstruction

      public Instruction getCurrentInstruction()
    • getRegisterValue

      public RegisterValue getRegisterValue(Register reg)
    • getRegisterValueString

      public String getRegisterValueString(Register reg)
    • setRegister

      public void setRegister(String regName, long value)
    • setRegister

      public void setRegister(String regName, BigInteger value)
    • addDumpPoint

      public void addDumpPoint(Address breakAddr, Address dumpAddr, int dumpSize, int elementSize, EmulatorTestRunner.DumpFormat elementFormat, String comment)
      Add memory dump point
      Parameters:
      breakAddr - instruction address at which execution should pause (before it is executed) so that the specified memory may be dumped to the log during trace execution mode.
      dumpAddr - memory address which should be dumped
      dumpSize - number elements which should be dumped
      elementSize - size of each element in bytes (be reasonable!)
      elementFormat - HEX, DECIMAL or FLOAT
      comment - dump comment
    • addDumpPoint

      public void addDumpPoint(Address breakAddr, Register dumpAddrReg, int relativeOffset, AddressSpace dumpAddrSpace, int dumpSize, int elementSize, EmulatorTestRunner.DumpFormat elementFormat, String comment)
      Add memory dump point
      Parameters:
      breakAddr - instruction address at which execution should pause (before it is executed) so that the specified memory may be dumped to the log during trace execution mode.
      dumpAddrReg - register containing the memory address offset which should be dumped
      relativeOffset - dump register relative offset
      dumpAddrSpace - address space to which memory offset should be applied
      dumpSize - number elements which should be dumped
      elementSize - size of each element in bytes (be reasonable!)
      elementFormat - HEX, DECIMAL or FLOAT
      comment - dump comment
    • getEmuError

      public String getEmuError()
    • getCallOtherErrors

      public int getCallOtherErrors()
      Get number of CALLOTHER errors detected when a test pass was registered. This number should be subtracted from the pass count and possibly added to the failure count. Number does not reflect total number of CALLOTHER pcodeops encountered but only the number of passed tests affected. See log for all CALLOTHER executions detected.
      Returns:
      number of CALLOTHER errors
    • execute

      public boolean execute(int timeLimitMS, TaskMonitor monitor) throws CancelledException
      Execute test group without instruction stepping/tracing
      Parameters:
      timeLimitMS -
      monitor -
      Returns:
      Throws:
      CancelledException
    • executeSingleStep

      public boolean executeSingleStep(int stepLimit)