[−][src]Struct isla_lib::memory::Memory
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]
&mut self,
range: Range<Address>,
contents: HashMap<Address, u8>
)
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]
&self,
read_kind: Val<B>,
address: Val<B>,
bytes: Val<B>,
solver: &mut Solver<B>
) -> Result<Val<B>, ExecError>
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]
&mut self,
write_kind: Val<B>,
address: Val<B>,
data: Val<B>,
solver: &mut Solver<B>
) -> Result<Val<B>, ExecError>
pub fn smt_address_constraint(
&self,
address: &Exp,
bytes: u32,
write: bool,
solver: &mut Solver<B>
) -> Exp[src]
&self,
address: &Exp,
bytes: u32,
write: bool,
solver: &mut Solver<B>
) -> Exp
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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T[src]
fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,