Skip to main content

Backtrace

Struct Backtrace 

Source
pub struct Backtrace { /* private fields */ }
Expand description

A captured stack backtrace with deferred symbol resolution.

Captured via Capturable. When backtrace capture is disabled (see rust_backtrace) the capture is empty and records no frames. Symbols are resolved lazily on first frame access and cached; clones share one capture, so cloning is a refcount bump and resolution happens once for all clones.

Implementations§

Source§

impl Backtrace

Source

pub const fn is_captured(&self) -> bool

true if frames were recorded at construction (capture was enabled and the platform produced a stack). An empty backtrace renders nothing and is not worth propagating over a fresh capture.

Never forces symbol resolution.

Source

pub fn marker_hidden_frames(&self) -> Option<usize>

Number of trailing frames hidden by this trace’s marker: the suffix shared with the marker stack, counted in rendered (symbol-level) frames. None when no marker was set on the capturing thread, the stacks share no frames (e.g. the marker came from another thread), the cut would hide every frame, or none of the hidden frames carry symbols.

Forces symbol resolution, like frames.

Source

pub fn resolve(&self)

Force symbol resolution now, caching the result in place.

Resolution is otherwise deferred until the first frame access (as_backtrace / frames). Call this to pay that cost at a controlled point — e.g. once up front rather than during rendering.

Trait Implementations§

Source§

impl Capturable for Backtrace

Source§

fn capture() -> Self

Capture a fresh value at the point the error is constructed.
Source§

fn capture_or_extract(source: &dyn Diagnostic) -> Self

Capture for an error that wraps source, reusing equivalent data already on source when that is more useful than a fresh capture. Read more
Source§

impl Clone for Backtrace

Source§

fn clone(&self) -> Backtrace

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Backtrace

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<&Backtrace> for ErasedBacktrace

Available on crate feature std only.
Source§

fn from(bt: &Backtrace) -> Self

Converts to this type from the input type.
Source§

impl From<Backtrace> for ErasedBacktrace

Available on crate feature std only.
Source§

fn from(bt: Backtrace) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DropFlavorWrapper<T> for T

Source§

type Flavor = MayDrop

The DropFlavor that wraps T into Self
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more