1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2016 年 3 月 2 日 |
---|
#331 在 性能分析
841 每月下载量
用于 23 个 crate(直接使用 2 个)
13KB
170 行
Debugtrace
此 crate 允许在 debug
和 test
构建中将回溯附加到值上,而不会在 release
或 bench
构建中产生开销。
它使用选定的构建配置来决定是否收集回溯。在 debug
和 test
中,会收集回溯,如果使用 fmt::Debug
({:?}
)打印值,则会打印回溯。在 release
和 bench
配置中,Trace
仅作为新类型包装器,使其无开销。
请注意,此 crate 在与 backtrace
相同的限制下运行,这意味着文件和行号信息并不总是可用。
安装
[dependencies]
debugtrace = "0.1.0"
用法
extern crate debugtrace;
use debugtrace::Trace;
fn foo() -> Trace<u32> {
Trace::new(123)
}
fn main () {
let e = foo();
println!("{:?}", e);
}
当使用 debug
或 test
配置构建时,将输出类似以下内容:
123 at
0 0x104f888d8 - foo::h83f9455bde0e24228Oe (src/main.rs:6)
1 0x104f8978b - main::hd70e3ccce038deb2gPe (src/main.rs:10)
2 0x104f9c312 - sys_common::unwind::try::try_fn::h4103587514840227558 (<unknown>:<unknown>)
3 0x104f9ab48 - __rust_try (<unknown>:<unknown>)
4 0x104f9c1b9 - rt::lang_start::h216753457f385fdaJCx (<unknown>:<unknown>)
5 0x104f8fb69 - main (<unknown>:<unknown>)
当使用 release
或 bench
配置构建时,它不会收集任何回溯,只会输出
123
功能
-
backtrace
:这将强制无论使用何种配置都要收集回溯。它还包括
Trace::resolve()
方法,以编程方式获取堆栈跟踪。
依赖关系
~335KB