Interface IStateTransitioner<TInstruction>
- Namespace
- Echo.DataFlow.Construction
- Assembly
- Echo.DataFlow.dll
Provides members for resolving the next possible states of a program after the execution of an instruction.
public interface IStateTransitioner<TInstruction> where TInstruction : notnull
Type Parameters
TInstructionThe type of instruction that is being executed.
Remarks
This interface is meant for components within the Echo project that require information about the transitions that an individual instruction might apply to a given program state. These are typically control flow graph builders, such as the SymbolicFlowGraphBuilder<TInstruction> class.
Methods
GetInitialState(long)
Gets the initial state of the program at a provided entry point address.
SymbolicProgramState<TInstruction> GetInitialState(long entrypointAddress)
Parameters
entrypointAddresslongThe entry point address.
Returns
- SymbolicProgramState<TInstruction>
The object representing the initial state of the program.
GetTransitions(in SymbolicProgramState<TInstruction>, in TInstruction, IList<StateTransition<TInstruction>>)
Resolves all possible program state transitions that the provided instruction can apply.
void GetTransitions(in SymbolicProgramState<TInstruction> currentState, in TInstruction instruction, IList<StateTransition<TInstruction>> transitionsBuffer)
Parameters
currentStateSymbolicProgramState<TInstruction>The current state of the program.
instructionTInstructionThe instruction to evaluate.
transitionsBufferIList<StateTransition<TInstruction>>The output buffer to add the transitions that the instruction might apply.