2个版本
0.3.63 | 2022年12月9日 |
---|---|
0.3.62 | 2022年12月9日 |
0.3.61 |
|
#825 in 调试
225KB
4.5K SLoC
pprof-backtrace
这是一个用于在Rust运行时获取backtrace的库。这个库旨在通过提供程序接口来增强标准库的支持,但它也支持像libstd的panics一样简单地打印当前的backtrace。从 https://github.com/rust-lang/backtrace-rs/tree/0.3.61 分支。
安装
[dependencies]
pprof-backtrace = "0.3"
用法
要简单地捕获一个backtrace并在以后处理它,您可以使用顶层的 Backtrace
类型。
use backtrace::Backtrace;
fn main() {
let bt = Backtrace::new();
// do_some_work();
println!("{:?}", bt);
}
但是,如果您希望直接访问实际的跟踪功能,可以使用 trace
和 resolve
函数。
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
});
}
许可证
此项目根据以下任一许可证授权:
- Apache许可证2.0版 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您故意提交给backtrace-rs的任何贡献都将按照上述方式双授权,不附加任何额外的条款或条件。
依赖关系
~5MB
~96K SLoC