Crate backtrace[−][src]
A library for acquiring a backtrace at runtime
This library is meant to supplement the RUST_BACKTRACE=1
support of the
standard library by allowing an acquisition of a backtrace at runtime
programmatically. The backtraces generated by this library do not need to be
parsed, for example, and expose the functionality of multiple backend
implementations.
Usage
First, add this to your Cargo.toml
[dependencies]
backtrace = "0.3"
Next:
fn main() { backtrace::trace(|frame| { let ip = frame.ip(); let symbol_address = frame.symbol_address(); // Resolve this instruction pointer to a symbol name backtrace::resolve_frame(frame, |symbol| { if let Some(name) = symbol.name() { // ... } if let Some(filename) = symbol.filename() { // ... } }); true // keep going to the next frame }); }
Structs
Backtrace | Representation of an owned and self-contained backtrace. |
BacktraceFmt | A formatter for backtraces. |
BacktraceFrame | Captured version of a frame in a backtrace. |
BacktraceFrameFmt | A formatter for just one frame of a backtrace. |
BacktraceSymbol | Captured version of a symbol in a backtrace. |
Frame | A trait representing one frame of a backtrace, yielded to the |
Symbol | A trait representing the resolution of a symbol in a file. |
SymbolName | A wrapper around a symbol name to provide ergonomic accessors to the demangled name, the raw bytes, the raw string, etc. |
Enums
BytesOrWideString | A platform independent representation of a string. When working with |
PrintFmt | The styles of printing that we can print |
Functions
clear_symbol_cache | Attempt to reclaim that cached memory used to symbolicate addresses. |
resolve | Resolve an address to a symbol, passing the symbol to the specified closure. |
resolve_frame | Resolve a previously capture frame to a symbol, passing the symbol to the specified closure. |
resolve_frame_unsynchronized⚠ | Same as |
resolve_unsynchronized⚠ | Same as |
trace | Inspects the current call-stack, passing all active frames into the closure provided to calculate a stack trace. |
trace_unsynchronized⚠ | Same as |