Struct gimli::read::FrameDescriptionEntry [−][src]
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]
&self,
section: &'a Section,
bases: &'a BaseAddresses,
ctx: &'a mut UninitializedUnwindContext<R>
) -> Result<UnwindTable<'a, R>>
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]
&self,
section: &Section,
bases: &BaseAddresses,
ctx: &mut UninitializedUnwindContext<R>,
address: u64
) -> Result<UnwindTableRow<R>>
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]
&self,
section: &'a Section,
bases: &'a BaseAddresses
) -> CallFrameInstructionIter<'a, R> where
Section: UnwindSection<R>,
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]
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
fn clone(&self) -> FrameDescriptionEntry<R, Offset>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<R: Debug, Offset: Debug> Debug for FrameDescriptionEntry<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
[src]
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
impl<R: Eq, Offset: Eq> Eq for FrameDescriptionEntry<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
[src]
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
impl<R: PartialEq, Offset: PartialEq> PartialEq<FrameDescriptionEntry<R, Offset>> for FrameDescriptionEntry<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
[src]
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
fn eq(&self, other: &FrameDescriptionEntry<R, Offset>) -> bool
[src]
fn ne(&self, other: &FrameDescriptionEntry<R, Offset>) -> bool
[src]
impl<R, Offset> StructuralEq for FrameDescriptionEntry<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
[src]
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
impl<R, Offset> StructuralPartialEq for FrameDescriptionEntry<R, Offset> where
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
[src]
R: Reader<Offset = Offset>,
Offset: ReaderOffset,
Auto Trait Implementations
impl<R, Offset> Send for FrameDescriptionEntry<R, Offset> where
Offset: Send,
R: Send,
Offset: Send,
R: Send,
impl<R, Offset> Sync for FrameDescriptionEntry<R, Offset> where
Offset: Sync,
R: Sync,
Offset: Sync,
R: Sync,
impl<R, Offset> Unpin for FrameDescriptionEntry<R, Offset> where
Offset: Unpin,
R: Unpin,
Offset: Unpin,
R: 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>,