1 个不稳定版本

0.1.0 2023年3月24日

#26 in #scoped


tasktrace中使用

Apache-2.0 OR MIT

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