Exception

Struct Exception 

Source
pub struct Exception<'a, P> { /* private fields */ }
Expand description

Exception Directory.

For more information see the module-level documentation.

Implementations§

Source§

impl<'a, P: Pe<'a>> Exception<'a, P>

Source

pub fn pe(&self) -> P

Gets the PE instance.

Source

pub fn image(&self) -> &'a [RUNTIME_FUNCTION]

Returns the functions slice.

Source

pub fn check_sorted(&self) -> bool

Checks if the function table is sorted.

The PE specification says that the list of runtime functions should be sorted to allow binary search. This function checks if the runtime functions are actually sorted, if not then lookups may fail unexpectedly.

Source

pub fn functions( &self, ) -> Map<Iter<'a, RUNTIME_FUNCTION>, impl Clone + FnMut(&'a RUNTIME_FUNCTION) -> Function<'a, P>>

Gets an iterator over the function records.

Source

pub fn index_of(&self, pc: Rva) -> Result<usize, usize>

Finds the index of the function for the given program counter.

Source

pub fn lookup_function_entry(&self, pc: Rva) -> Option<Function<'a, P>>

Finds the function for the given ‘program counter’ address.

The function records are sorted by their address allowing binary search for the record.

Trait Implementations§

Source§

impl<'a, P: Clone> Clone for Exception<'a, P>

Source§

fn clone(&self) -> Exception<'a, P>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a, P: Pe<'a>> Debug for Exception<'a, P>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, P: Copy> Copy for Exception<'a, P>

Auto Trait Implementations§

§

impl<'a, P> Freeze for Exception<'a, P>
where P: Freeze,

§

impl<'a, P> RefUnwindSafe for Exception<'a, P>
where P: RefUnwindSafe,

§

impl<'a, P> Send for Exception<'a, P>
where P: Send,

§

impl<'a, P> Sync for Exception<'a, P>
where P: Sync,

§

impl<'a, P> Unpin for Exception<'a, P>
where P: Unpin,

§

impl<'a, P> UnwindSafe for Exception<'a, P>
where P: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.