pub struct Backtrace { /* private fields */ }
Expand description
Representation of an owned and self-contained backtrace.
This structure can be used to capture a backtrace at various points in a program and later used to inspect what the backtrace was at that time.
Backtrace
supports pretty-printing of backtraces through its Debug
implementation.
Implementations§
source§impl Backtrace
impl Backtrace
sourcepub fn new() -> Backtrace
pub fn new() -> Backtrace
Captures a backtrace at the callsite of this function, returning an owned representation.
This function is useful for representing a backtrace as an object in Rust. This returned value can be sent across threads and printed elsewhere, and the purpose of this value is to be entirely self contained.
Examples
use backtrace::Backtrace;
let current_backtrace = Backtrace::new();
sourcepub fn new_unresolved() -> Backtrace
pub fn new_unresolved() -> Backtrace
Similar to new
except that this does not resolve any symbols, this
simply captures the backtrace as a list of addresses.
At a later time the resolve
function can be called to resolve this
backtrace’s symbols into readable names. This function exists because
the resolution process can sometimes take a significant amount of time
whereas any one backtrace may only be rarely printed.
Examples
use backtrace::Backtrace;
let mut current_backtrace = Backtrace::new_unresolved();
println!("{:?}", current_backtrace); // no symbol names
current_backtrace.resolve();
println!("{:?}", current_backtrace); // symbol names now present
sourcepub fn frames(&self) -> &[BacktraceFrame]
pub fn frames(&self) -> &[BacktraceFrame]
Returns the frames from when this backtrace was captured.
The first entry of this slice is likely the function Backtrace::new
,
and the last frame is likely something about how this thread or the main
function started.