Backtraces in Rust
Branch: master
Clone or download
Latest commit b4a101a Feb 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
backtrace-sys Bump to 0.1.28 Dec 23, 2018
ci test May 31, 2018
examples Add an owned Backtrace type Apr 12, 2016
tests Fix a long function name test on MSVC Nov 1, 2018
.gitignore Initial sketch Jun 10, 2015
.travis.yml No need for secure env vars on Travis Jan 2, 2019
LICENSE-APACHE Add license files Jun 10, 2015
appveyor.yml Fix Windows build of no_std and `dbghelp` Nov 1, 2018 Comment what's going on in dbghelp Dec 13, 2018


Build Status Build status


A library for acquiring backtraces at runtime for Rust. This library aims to enhance the support of the standard library by providing a more stable and programmatic interface.


backtrace = "0.3"
extern crate backtrace;

Note that this crate requires make, objcopy, and ar to be present on Linux systems.


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

extern crate backtrace;

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.

extern crate backtrace;

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(ip, |symbol| {
            if let Some(name) = {
                // ...
            if let Some(filename) = symbol.filename() {
                // ...

        true // keep going to the next frame

Platform Support

This library currently supports OSX, Linux, and Windows. Support for other platforms is always welcome!


This project is licensed under either of

at your option.


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.