[][src]Struct finch::executor::Driver

pub struct Driver { /* fields omitted */ }

A Driver to driver State over an il::Program.

Methods

impl Driver[src]

pub fn new(
    program: Program,
    location: ProgramLocation,
    state: State,
    architecture: RC<Box<dyn Architecture>>
) -> Driver
[src]

Create a new Driver for symbolic execution over Falcon IL.

pub fn step(self) -> Result<Vec<Driver>>[src]

Step the underlying State forward over this Driver's il::Program.

pub fn program(&self) -> &Program[src]

Retrieve the Falcon IL program associated with this driver.

pub fn set_program(
    &mut self,
    program: Program,
    program_location: ProgramLocation
)
[src]

Set the Falcon IL program associated with this driver.

pub fn ref_program_location(&self) -> RefProgramLocation[src]

Retrieve the RefProgramLocation for this Driver

pub fn location(&self) -> &ProgramLocation[src]

Retrieve the il::ProgramLocation associated with this driver.

pub fn set_location(&mut self, location: ProgramLocation)[src]

Jump the driver to another address

pub fn address(&self) -> Option<u64>[src]

Retrieve the address of the instruction this driver is currently on

pub fn instruction(&self) -> Option<Instruction>[src]

Retrieve the instruction for this driver, if this driver is currently execution an instruction

pub fn state(&self) -> &State[src]

Retrieve the State associated with this driver.

pub fn state_mut(&mut self) -> &mut State[src]

Retrieve a mutable reference to the State.

pub fn trace(&self) -> &Trace[src]

Get a trace of instructions executed by this driver

pub fn merge(&self, other: &Driver) -> Result<Option<Driver>>[src]

Merge two drivers together, if they are at the same program location

Trait Implementations

impl Clone for Driver[src]

impl Debug for Driver[src]

impl Into<State> for Driver[src]

Auto Trait Implementations

impl !RefUnwindSafe for Driver

impl !Send for Driver

impl !Sync for Driver

impl Unpin for Driver

impl !UnwindSafe for Driver

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.