pub struct Memory<B> { /* private fields */ }Implementations§
Source§impl<B: BV> Memory<B>
impl<B: BV> Memory<B>
pub fn new() -> Self
pub fn kind_at(&self, addr: Address) -> &'static str
pub fn log(&self)
pub fn in_custom_region(&self, addr: Address) -> Option<&dyn CustomRegion<B>>
pub fn add_region(&mut self, region: Region<B>)
pub fn add_symbolic_region(&mut self, range: Range<Address>)
pub fn add_symbolic_code_region(&mut self, range: Range<Address>)
pub fn add_concrete_region( &mut self, range: Range<Address>, contents: HashMap<Address, u8>, )
pub fn add_zero_region(&mut self, range: Range<Address>)
pub fn set_client_info(&mut self, info: Box<dyn MemoryCallbacks<B>>)
pub fn write_byte(&mut self, address: Address, byte: u8)
pub fn read_initial( &self, address: Address, bytes: u32, ) -> Result<Val<B>, ExecError>
Sourcepub fn read(
&self,
read_kind: Val<B>,
address: Val<B>,
bytes: Val<B>,
solver: &mut Solver<'_, B>,
tag: bool,
) -> Result<Val<B>, ExecError>
pub fn read( &self, read_kind: Val<B>, address: Val<B>, bytes: Val<B>, solver: &mut Solver<'_, B>, tag: bool, ) -> 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>, tag: Option<Val<B>>, ) -> Result<Val<B>, ExecError>
pub fn smt_address_constraint( &self, address: &Exp, bytes: u32, kind: SmtKind, solver: &mut Solver<'_, B>, tag: Option<&Exp>, ) -> Exp
Trait Implementations§
Auto Trait Implementations§
impl<B> Freeze for Memory<B>
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§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more