Function backtracer_core::trace
source · [−]Expand description
Inspects the current call-stack, passing all active frames into the closure provided to calculate a stack trace.
This function is the workhorse of this library in calculating the stack
traces for a program. The given closure cb
is yielded instances of a
Frame
which represent information about that call frame on the stack. The
closure is yielded frames in a top-down fashion (most recently called
functions first).
The closure’s return value is an indication of whether the backtrace should
continue. A return value of false
will terminate the backtrace and return
immediately.
Once a Frame
is acquired you will likely want to call backtrace::resolve
to convert the ip
(instruction pointer) or symbol address to a Symbol
through which the name and/or filename/line number can be learned.
Note that this is a relatively low-level function and if you’d like to, for
example, capture a backtrace to be inspected later, then the Backtrace
type may be more appropriate.
Example
extern crate backtracer;
fn main() {
backtrace::trace(|frame| {
// ...
true // continue the backtrace
});
}