backtrace
cargo install backtrace

backtrace

Backtraces in Rust

by rust-lang

0.3.65 (see all)License:MIT/Apache-2.0
cargo install backtrace
Readme

backtrace-rs

Documentation

A library for acquiring backtraces at runtime for Rust. This library aims to enhance the support of the standard library by providing a programmatic interface to work with, but it also supports simply easily printing the current backtrace like libstd's panics.

Install

[dependencies]
backtrace = "0.3"

Usage

To simply capture a backtrace and defer dealing with it until a later time, you can use the top-level Backtrace type.

use backtrace::Backtrace;


fn main() {
let bt = Backtrace::new();



// do_some_work();

println!("{:?}", bt);




}

}

If, however, you'd like more raw access to the actual tracing functionality, you can use the trace and resolve functions directly.

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
});




}

}

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in backtrace-rs by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

GitHub Stars

319

LAST COMMIT

8mos ago

MAINTAINERS

1

CONTRIBUTORS

90

OPEN ISSUES

18

OPEN PRs

6
VersionTagPublished
0.3.65
2mos ago
0.3.64
5mos ago
0.3.63
8mos ago
0.3.62
8mos ago
No alternatives found
No tutorials found
Add a tutorial