Struct gimli::read::CfiEntriesIter [−][src]
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]
R: Reader,
Section: UnwindSection<R>,
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]
R: Reader,
Section: UnwindSection<R>,
fn clone(&self) -> CfiEntriesIter<'bases, Section, R>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<'bases, Section: Debug, R: Debug> Debug for CfiEntriesIter<'bases, Section, R> where
R: Reader,
Section: UnwindSection<R>,
[src]
R: Reader,
Section: UnwindSection<R>,
Auto Trait Implementations
impl<'bases, Section, R> Send for CfiEntriesIter<'bases, Section, R> where
R: Send,
Section: Send,
R: Send,
Section: Send,
impl<'bases, Section, R> Sync for CfiEntriesIter<'bases, Section, R> where
R: Sync,
Section: Sync,
R: Sync,
Section: Sync,
impl<'bases, Section, R> Unpin for CfiEntriesIter<'bases, Section, R> where
R: Unpin,
Section: Unpin,
R: Unpin,
Section: Unpin,
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,
pub 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> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub 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.
pub 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>,