pub struct UnwindContext<'a> { /* private fields */ }Expand description
Holds an immutable snapshot of the current CPU’s registers at a certain point of execution.
The context does not contain an entire stack backtrace, just the information
required to begin stepping through the call chain. To do so, create an
UnwindCursor from the data in this snapshot.
Implementations§
Source§impl UnwindContext<'_>
impl UnwindContext<'_>
Sourcepub fn capture<R>(
handler: impl FnOnce(Self) -> Result<R, UnwindError>,
) -> Result<R, UnwindError>
pub fn capture<R>( handler: impl FnOnce(Self) -> Result<R, UnwindError>, ) -> Result<R, UnwindError>
Captures a snapshot of the current CPU state, allowing for local unwinding.
The given handler function is passed the unwind context. The context is not allowed to escape the current scope because it would be invalidated if the stack frame it points to was destroyed.
Sourcepub const unsafe fn from_raw(raw: unw_context_t) -> Self
pub const unsafe fn from_raw(raw: unw_context_t) -> Self
Creates a new UnwindContext from a raw context acquired through FFI.
§Safety
The returned context must be dropped before the stack frame it points at is destroyed.
Sourcepub fn as_mut_ptr(&mut self) -> *mut unw_context_t
pub fn as_mut_ptr(&mut self) -> *mut unw_context_t
Returns the underlying libunwind object.
Trait Implementations§
Source§impl<'a> Clone for UnwindContext<'a>
impl<'a> Clone for UnwindContext<'a>
Source§fn clone(&self) -> UnwindContext<'a>
fn clone(&self) -> UnwindContext<'a>
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<'a> !Freeze for UnwindContext<'a>
impl<'a> !RefUnwindSafe for UnwindContext<'a>
impl<'a> Send for UnwindContext<'a>
impl<'a> !Sync for UnwindContext<'a>
impl<'a> Unpin for UnwindContext<'a>
impl<'a> UnwindSafe for UnwindContext<'a>
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)