1 个不稳定版本
0.1.0 | 2023年3月24日 |
---|
#26 in #scoped
在tasktrace中使用
18KB
266 代码行
scoped-trace
捕获作用域回溯。
使用 Trace::root
定义执行跟踪的上限,以及 Trace::leaf
定义其下限(收集回溯的点)。生成的跟踪是树状结构,因为单个 Trace::root
调用可能有多个 Trace::leaf
子调用。
例如,运行此程序
use scoped_trace::Trace;
fn main() {
let (_, trace) = Trace::root(|| foo());
println!("{trace}");
}
fn foo() {
bar();
baz();
}
fn bar() {
Trace::leaf();
}
fn baz() {
Trace::leaf();
}
...将产生类似以下输出
╼ inlining::main::{{closure}} at example.rs:4:38
├╼ inlining::foo at example.rs:9:5
│ └╼ inlining::bar at example.rs:14:5
└╼ inlining::foo at example.rs:10:5
└╼ inlining::baz at example.rs:18:5
许可证
本项目采用Apache许可证第2版或MIT许可证,由您选择。
贡献
除非您明确表示,否则您故意提交给scoped-trace以供包含的贡献将按MIT和Apache 2.0许可,不附加任何额外条款或条件。
依赖项
~3.5–4.5MB
~89K SLoC