Struct gimli::read::UninitializedUnwindContext [−][src]
Common context needed when evaluating the call frame unwinding information.
To avoid re-allocating the context multiple times when evaluating multiple
CFI programs, it can be reused. At first, a context is uninitialized
(UninitializedUnwindContext
). It can be initialized by providing the
CommonInformationEntry
for the CFI program about to be evaluated and
calling UninitializedUnwindContext::initialize
. The result is a &mut UnwindContext
which borrows the uninitialized context, and can be used to evaluate and run a
FrameDescriptionEntry
’s CFI program.
use gimli::{UninitializedUnwindContext, UnwindTable}; // An uninitialized context. let mut ctx = UninitializedUnwindContext::new(); // Initialize the context by evaluating the CIE's initial instruction program, // and generate the unwind table. let mut table = some_fde.rows(&eh_frame, &bases, &mut ctx)?; while let Some(row) = table.next_row()? { // Do stuff with each row... }
Implementations
impl<R: Reader> UninitializedUnwindContext<R>
[src]
pub fn new() -> UninitializedUnwindContext<R>
[src]
Construct a new call frame unwinding context.
impl<R: Reader> UninitializedUnwindContext<R>
[src]
Signal Safe Methods
These methods are guaranteed not to allocate, acquire locks, or perform any other signal-unsafe operations.
pub fn initialize<Section: UnwindSection<R>>(
&mut self,
section: &Section,
bases: &BaseAddresses,
cie: &CommonInformationEntry<R>
) -> Result<&mut UnwindContext<R>>
[src]
&mut self,
section: &Section,
bases: &BaseAddresses,
cie: &CommonInformationEntry<R>
) -> Result<&mut UnwindContext<R>>
Run the CIE’s initial instructions, creating and return an
UnwindContext
.
Trait Implementations
impl<R: Clone + Reader> Clone for UninitializedUnwindContext<R>
[src]
fn clone(&self) -> UninitializedUnwindContext<R>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<R: Debug + Reader> Debug for UninitializedUnwindContext<R>
[src]
impl<R: Reader> Default for UninitializedUnwindContext<R>
[src]
Auto Trait Implementations
impl<R> Send for UninitializedUnwindContext<R> where
R: Send,
R: Send,
impl<R> Sync for UninitializedUnwindContext<R> where
R: Sync,
R: Sync,
impl<R> Unpin for UninitializedUnwindContext<R>
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>,