[][src]Struct isla_lib::memory::Memory

pub struct Memory<B> { /* fields omitted */ }

Implementations

impl<B: BV> Memory<B>[src]

pub fn new() -> Self[src]

pub fn log(&self)[src]

pub fn add_region(&mut self, region: Region<B>)[src]

pub fn add_symbolic_region(&mut self, range: Range<Address>)[src]

pub fn add_symbolic_code_region(&mut self, range: Range<Address>)[src]

pub fn add_concrete_region(
    &mut self,
    range: Range<Address>,
    contents: HashMap<Address, u8>
)
[src]

pub fn set_client_info(&mut self, info: Box<dyn MemoryCallbacks<B>>)[src]

pub fn write_byte(&mut self, address: Address, byte: u8)[src]

pub fn read(
    &self,
    read_kind: Val<B>,
    address: Val<B>,
    bytes: Val<B>,
    solver: &mut Solver<B>
) -> Result<Val<B>, ExecError>
[src]

Read from the memory region determined by the address. If the address is symbolic the read value is always also symbolic. The number of bytes must be concrete otherwise will return a SymbolicLength error.

Panics

Panics if the number of bytes to read is concrete but does not fit in a u32, which should never be the case.

pub fn write(
    &mut self,
    write_kind: Val<B>,
    address: Val<B>,
    data: Val<B>,
    solver: &mut Solver<B>
) -> Result<Val<B>, ExecError>
[src]

pub fn smt_address_constraint(
    &self,
    address: &Exp,
    bytes: u32,
    write: bool,
    solver: &mut Solver<B>
) -> Exp
[src]

Trait Implementations

impl<B: Clone> Clone for Memory<B>[src]

impl<B: Debug> Debug for Memory<B>[src]

impl<B: Default> Default for Memory<B>[src]

Auto Trait Implementations

impl<B> !RefUnwindSafe for Memory<B>

impl<B> Send for Memory<B>

impl<B> Sync for Memory<B>

impl<B> Unpin for Memory<B>

impl<B> !UnwindSafe for Memory<B>

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> Same<T> for T

type Output = T

Should always be Self

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.