Package ghidra.pcode.emu.auxiliary

# Class AuxPcodeThread<U>

java.lang.Object
ghidra.pcode.emu.DefaultPcodeThread<T>
ghidra.pcode.emu.ModifiedPcodeThread<org.apache.commons.lang3.tuple.Pair<byte[],U>>
ghidra.pcode.emu.auxiliary.AuxPcodeThread<U>

Type Parameters:
  `U` - the type of auxiliary values

All Implemented Interfaces:
  `PcodeThread<org.apache.commons.lang3.tuple.Pair<byte[],U>>`

public class AuxPcodeThread<U> extends ModifiedPcodeThread<org.apache.commons.lang3.tuple.Pair<byte[],U>>
The default thread for `AuxPcodeEmulator`

Generally, extending this class should not be necessary, as it already defers to the emulator's parts factory

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class ghidra.pcode.emu.ModifiedPcodeThread

  `ModifiedPcodeThread.GlueEmulate`

  ## Nested classes/interfaces inherited from class ghidra.pcode.emu.DefaultPcodeThread

  `DefaultPcodeThread.PcodeEmulationLibrary<T>, DefaultPcodeThread.PcodeThreadExecutor<T>`

- ## Field Summary

  ### Fields inherited from class ghidra.pcode.emu.ModifiedPcodeThread

  `emulate, modifier`

  ### Fields inherited from class ghidra.pcode.emu.DefaultPcodeThread

  `arithmetic, contextreg, decoder, defaultContext, executor, frame, injects, instruction, language, library, pc, state`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AuxPcodeThread(String name, AuxPcodeEmulator<U> emulator)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected DefaultPcodeThread.PcodeThreadExecutor<org.apache.commons.lang3.tuple.Pair<byte[],U>>`
  `createExecutor()`
  A factory method to create the executor for this thread
  `protected PcodeUseropLibrary<org.apache.commons.lang3.tuple.Pair<byte[],U>>`
  `createUseropLibrary()`
  A factory method to create the complete userop library for this thread
  `AuxPcodeEmulator<U>`
  `getMachine()`
  Get the machine within which this thread executes
  `protected AuxEmulatorPartsFactory<U>`
  `getPartsFactory()`

  ### Methods inherited from class ghidra.pcode.emu.ModifiedPcodeThread

  `createModifier, onMissingUseropDef, overrideCounter, postExecuteInstruction`

  ### Methods inherited from class ghidra.pcode.emu.DefaultPcodeThread

  `advanceAfterFinished, assertCompletedInstruction, assertMidInstruction, assignContext, beginInstructionOrInject, branchToAddress, checkLoad, checkStore, clearAllInjects, clearInject, createInstructionDecoder, doPluggableInitialization, dropInstruction, executeInstruction, finishInstruction, getArithmetic, getContext, getContextAfterCommits, getCounter, getExecutor, getFrame, getInject, getInstruction, getLanguage, getName, getState, getUseropLibrary, inject, isSuspended, overrideContext, overrideContextWithDefault, preExecuteInstruction, reInitialize, run, setCounter, setSuspended, skipInstruction, skipPcodeOp, stepInstruction, stepPatch, stepPcodeOp, stepped, swi, writeCounter`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ghidra.pcode.emu.PcodeThread

  `stepInstruction, stepPcodeOp`

- ## Constructor Details

  - ### AuxPcodeThread

    public AuxPcodeThread(String name, AuxPcodeEmulator<U> emulator)

- ## Method Details

  - ### getMachine

    public AuxPcodeEmulator<U> getMachine()
    Description copied from interface: `PcodeThread`
    Get the machine within which this thread executes
    Specified by:
      `getMachine` in interface `PcodeThread<U>`
    Overrides:
      `getMachine` in class `DefaultPcodeThread<org.apache.commons.lang3.tuple.Pair<byte[],U>>`
    Returns:
      the containing machine

  - ### getPartsFactory

    protected AuxEmulatorPartsFactory<U> getPartsFactory()

  - ### createUseropLibrary

    protected PcodeUseropLibrary<org.apache.commons.lang3.tuple.Pair<byte[],U>> createUseropLibrary()
    Description copied from class: `DefaultPcodeThread`
    A factory method to create the complete userop library for this thread

    The returned library must compose the containing machine's shared userop library. See `PcodeUseropLibrary.compose(PcodeUseropLibrary)`.

    Overrides:
      `createUseropLibrary` in class `DefaultPcodeThread<org.apache.commons.lang3.tuple.Pair<byte[],U>>`
    Returns:
      the thread's complete userop library

  - ### createExecutor

    protected DefaultPcodeThread.PcodeThreadExecutor<org.apache.commons.lang3.tuple.Pair<byte[],U>> createExecutor()
    Description copied from class: `DefaultPcodeThread`
    A factory method to create the executor for this thread
    Overrides:
      `createExecutor` in class `DefaultPcodeThread<org.apache.commons.lang3.tuple.Pair<byte[],U>>`
    Returns:
      the executor