[][src]Struct gimli::read::CfiEntriesIter

pub struct CfiEntriesIter<'bases, Section, R> where
    R: Reader,
    Section: UnwindSection<R>, 
{ /* fields omitted */ }

An iterator over CIE and FDE entries in a .debug_frame or .eh_frame section.

Some pointers may be encoded relative to various base addresses. Use the BaseAddresses parameter to provide them. By default, none are provided. If a relative pointer is encountered for a base address that is unknown, an Err will be returned and iteration will abort.

Can be used with FallibleIterator.

use gimli::{BaseAddresses, EhFrame, EndianSlice, NativeEndian, UnwindSection};

let eh_frame = EhFrame::new(read_eh_frame_somehow(), NativeEndian);

// Provide base addresses for relative pointers.
let bases = BaseAddresses::default()
    .set_eh_frame_hdr(address_of_eh_frame_hdr_section_in_memory)
    .set_eh_frame(address_of_eh_frame_section_in_memory)
    .set_text(address_of_text_section_in_memory)
    .set_got(address_of_got_section_in_memory);

let mut entries = eh_frame.entries(&bases);

while let Some(entry) = entries.next()? {
    do_stuff_with(entry)
}

Implementations

impl<'bases, Section, R> CfiEntriesIter<'bases, Section, R> where
    R: Reader,
    Section: UnwindSection<R>, 
[src]

pub fn next(&mut self) -> Result<Option<CieOrFde<'bases, Section, R>>>[src]

Advance the iterator to the next entry.

Trait Implementations

impl<'bases, Section: Clone, R: Clone> Clone for CfiEntriesIter<'bases, Section, R> where
    R: Reader,
    Section: UnwindSection<R>, 
[src]

impl<'bases, Section: Debug, R: Debug> Debug for CfiEntriesIter<'bases, Section, R> where
    R: Reader,
    Section: UnwindSection<R>, 
[src]

impl<'bases, Section, R> FallibleIterator for CfiEntriesIter<'bases, Section, R> where
    R: Reader,
    Section: UnwindSection<R>, 
[src]

type Item = CieOrFde<'bases, Section, R>

The type being iterated over.

type Error = Error

The error type.

Auto Trait Implementations

impl<'bases, Section, R> RefUnwindSafe for CfiEntriesIter<'bases, Section, R> where
    R: RefUnwindSafe,
    Section: RefUnwindSafe

impl<'bases, Section, R> Send for CfiEntriesIter<'bases, Section, R> where
    R: Send,
    Section: Send

impl<'bases, Section, R> Sync for CfiEntriesIter<'bases, Section, R> where
    R: Sync,
    Section: Sync

impl<'bases, Section, R> Unpin for CfiEntriesIter<'bases, Section, R> where
    R: Unpin,
    Section: Unpin

impl<'bases, Section, R> UnwindSafe for CfiEntriesIter<'bases, Section, R> where
    R: UnwindSafe,
    Section: UnwindSafe

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<I> IntoFallibleIterator for I where
    I: FallibleIterator
[src]

type Item = <I as FallibleIterator>::Item

The elements of the iterator.

type Error = <I as FallibleIterator>::Error

The error value of the iterator.

type IntoFallibleIter = I

The iterator.

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.