Function backtrace::trace [−][src]
pub fn trace<F: FnMut(&Frame) -> bool>(cb: F)
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 backtrace; fn main() { backtrace::trace(|frame| { // ... true // continue the backtrace }); }