[][src]Struct gimli::read::FrameDescriptionEntry

pub struct FrameDescriptionEntry<R, Offset = <R as Reader>::Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset
{ /* fields omitted */ }

A FrameDescriptionEntry is a set of CFA instructions for an address range.

Implementations

impl<R: Reader> FrameDescriptionEntry<R>[src]

pub fn rows<'a, Section: UnwindSection<R>>(
    &self,
    section: &'a Section,
    bases: &'a BaseAddresses,
    ctx: &'a mut UninitializedUnwindContext<R>
) -> Result<UnwindTable<'a, R>>
[src]

Return the table of unwind information for this FDE.

pub fn unwind_info_for_address<Section: UnwindSection<R>>(
    &self,
    section: &Section,
    bases: &BaseAddresses,
    ctx: &mut UninitializedUnwindContext<R>,
    address: u64
) -> Result<UnwindTableRow<R>>
[src]

Find the frame unwind information for the given address.

If found, the unwind information is returned along with the reset context in the form Ok((unwind_info, context)). If not found, Err(gimli::Error::NoUnwindInfoForAddress) is returned. If parsing or CFI evaluation fails, the error is returned.

impl<R: Reader> FrameDescriptionEntry<R>[src]

Signal Safe Methods

These methods are guaranteed not to allocate, acquire locks, or perform any other signal-unsafe operations.

pub fn offset(&self) -> R::Offset[src]

Get the offset of this entry from the start of its containing section.

pub fn cie(&self) -> &CommonInformationEntry<R>[src]

Get a reference to this FDE's CIE.

pub fn entry_len(&self) -> R::Offset[src]

A constant that gives the number of bytes of the header and instruction stream for this function, not including the length field itself (see Section 7.2.2). The size of the length field plus the value of length must be an integral multiple of the address size.

pub fn instructions<'a, Section>(
    &self,
    section: &'a Section,
    bases: &'a BaseAddresses
) -> CallFrameInstructionIter<'a, R> where
    Section: UnwindSection<R>, 
[src]

Iterate over this FDE's instructions.

Will not include the CIE's initial instructions, if you want those do fde.cie().instructions() first.

Can be used with FallibleIterator.

pub fn initial_address(&self) -> u64[src]

The first address for which this entry has unwind information for.

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

The number of bytes of instructions that this entry has unwind information for.

pub fn contains(&self, address: u64) -> bool[src]

Return true if the given address is within this FDE, false otherwise.

This is equivalent to entry.initial_address() <= address < entry.initial_address() + entry.len().

pub fn lsda(&self) -> Option<Pointer>[src]

The address of this FDE's language-specific data area (LSDA), if it has any.

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

Return true if this FDE's function is a trampoline for a signal handler.

pub fn personality(&self) -> Option<Pointer>[src]

Return the address of the FDE's function's personality routine handler. The personality routine does language-specific clean up when unwinding the stack frames with the intent to not run them again.

Trait Implementations

impl<R: Clone, Offset: Clone> Clone for FrameDescriptionEntry<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset
[src]

impl<R: Debug, Offset: Debug> Debug for FrameDescriptionEntry<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset
[src]

impl<R: Eq, Offset: Eq> Eq for FrameDescriptionEntry<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset
[src]

impl<R: PartialEq, Offset: PartialEq> PartialEq<FrameDescriptionEntry<R, Offset>> for FrameDescriptionEntry<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset
[src]

impl<R, Offset> StructuralEq for FrameDescriptionEntry<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset
[src]

impl<R, Offset> StructuralPartialEq for FrameDescriptionEntry<R, Offset> where
    R: Reader<Offset = Offset>,
    Offset: ReaderOffset
[src]

Auto Trait Implementations

impl<R, Offset> RefUnwindSafe for FrameDescriptionEntry<R, Offset> where
    Offset: RefUnwindSafe,
    R: RefUnwindSafe

impl<R, Offset> Send for FrameDescriptionEntry<R, Offset> where
    Offset: Send,
    R: Send

impl<R, Offset> Sync for FrameDescriptionEntry<R, Offset> where
    Offset: Sync,
    R: Sync

impl<R, Offset> Unpin for FrameDescriptionEntry<R, Offset> where
    Offset: Unpin,
    R: Unpin

impl<R, Offset> UnwindSafe for FrameDescriptionEntry<R, Offset> where
    Offset: UnwindSafe,
    R: 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<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

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

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

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.