Class ReDisassembler.ReDisState

java.lang.Object
ghidra.program.disassemble.ReDisassembler.ReDisState
Enclosing class:
ReDisassembler

protected class ReDisassembler.ReDisState extends Object
  • Field Details

    • monitor

      protected final TaskMonitor monitor
    • progMemBuffer

      protected final MemBuffer progMemBuffer
    • tempContext

      protected final ProgramContext tempContext
    • visited

      protected final AddressSet visited
    • queue

      protected final Deque<ghidra.program.disassemble.ReDisassembler.Flow> queue
    • instructionSet

      protected final InstructionSet instructionSet
    • ctxAddrs

      protected final Set<Address> ctxAddrs
  • Constructor Details

  • Method Details

    • addSeed

      protected ReDisassembler.ReDisState addSeed(Address seed)
    • addFlow

      protected ReDisassembler.ReDisState addFlow(ghidra.program.disassemble.ReDisassembler.Flow flow)
    • createBuffer

      protected MemBuffer createBuffer(Address at)
    • nextBlock

      protected boolean nextBlock() throws CancelledException
      Not necessarily a full block, but certainly no more than a block.

      It's also not necessarily a basic block, since this doesn't care about jumps into the block. It simply starts at the next seed and proceeds until either the existing instruction and context matches what's already there, or it encounters an unconditional branch.

      Returns:
      true if the queue is non-empty after completing this block, false if we're done.
      Throws:
      CancelledException
    • disassemble

      protected InstructionSet disassemble() throws CancelledException
      Throws:
      CancelledException
    • writeContext

      public void writeContext()