| Crates.io | scoped-trace |
| lib.rs | scoped-trace |
| version | 0.1.0 |
| created_at | 2023-03-24 20:29:46.641895+00 |
| updated_at | 2023-03-24 20:29:46.641895+00 |
| description | Collect scoped backtraces. |
| homepage | |
| repository | https://github.com/jswrenn/scoped-trace |
| max_upload_size | |
| id | 819696 |
| size | 41,115 |
Capture scoped backtraces.
Use Trace::root to define the upper unwinding bound of an execution
trace, and Trace::leaf to define its lower bounds (the points at which
backtraces are collected). The resulting traces are trees, since a single
invocation of Trace::root may have multiple sub-invocations of
Trace::leaf.
For example, running this program:
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();
}
...will produce an output like:
╼ 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
This project is licensed under the Apache License, Version 2.0, or the MIT license, at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in scoped-trace by you, shall be licensed as MIT and Apache 2.0, without any additional terms or conditions.