[][src]Struct goblin::pe::exception::ExceptionData

pub struct ExceptionData<'a> { /* fields omitted */ }

Exception handling and stack unwind information for functions in the image.

Methods

impl<'a> ExceptionData<'a>[src]

pub fn parse(
    bytes: &'a [u8],
    directory: DataDirectory,
    sections: &[SectionTable],
    file_alignment: u32
) -> Result<Self>
[src]

Parses exception data from the image at the given offset.

pub fn len(&self) -> usize[src]

The number of function entries described by this exception data.

pub fn is_empty(&self) -> bool[src]

Indicating whether there are functions in this entry.

Important traits for RuntimeFunctionIterator<'_>
pub fn functions(&self) -> RuntimeFunctionIterator<'a>[src]

Iterates all function entries in order of their code offset.

To search for a function by relative instruction address, use find_function. To resolve unwind information, use get_unwind_info.

pub fn get_function(&self, index: usize) -> Result<RuntimeFunction>[src]

Returns the function at the given index.

pub fn find_function(&self, rva: u32) -> Result<Option<RuntimeFunction>>[src]

Performs a binary search to find a function entry covering the given RVA relative to the image.

pub fn get_unwind_info(
    &self,
    function: RuntimeFunction,
    sections: &[SectionTable]
) -> Result<UnwindInfo<'a>>
[src]

Resolves unwind information for the given function entry.

Trait Implementations

impl<'a, '_> IntoIterator for &'_ ExceptionData<'a>[src]

type Item = Result<RuntimeFunction>

The type of the elements being iterated over.

type IntoIter = RuntimeFunctionIterator<'a>

Which kind of iterator are we turning this into?

impl<'_> Debug for ExceptionData<'_>[src]

Auto Trait Implementations

impl<'a> Send for ExceptionData<'a>

impl<'a> Unpin for ExceptionData<'a>

impl<'a> Sync for ExceptionData<'a>

impl<'a> UnwindSafe for ExceptionData<'a>

impl<'a> RefUnwindSafe for ExceptionData<'a>

Blanket Implementations

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

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

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.

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

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

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