Crates.io | pprof-backtrace |
lib.rs | pprof-backtrace |
version | 0.3.63 |
source | src |
created_at | 2022-12-09 04:26:31.102178 |
updated_at | 2022-12-09 07:21:01.692525 |
description | A library to acquire a stack trace (backtrace) at runtime in a Rust program. Fork from https://github.com/rust-lang/backtrace-rs/tree/0.3.61. |
homepage | https://github.com/hehechen/backtrace-rs |
repository | https://github.com/hehechen/backtrace-rs |
max_upload_size | |
id | 732985 |
size | 273,514 |
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. Fork from https://github.com/rust-lang/backtrace-rs/tree/0.3.61.
[dependencies]
pprof-backtrace = "0.3"
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
});
}
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.