#trace #stack-trace

debugtrace

启用在调试和测试构建中附加回溯,而不会在发布或基准构建中产生开销

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2016 年 3 月 2 日

#331性能分析

Download history 846/week @ 2024-03-13 721/week @ 2024-03-20 459/week @ 2024-03-27 246/week @ 2024-04-03 202/week @ 2024-04-10 237/week @ 2024-04-17 205/week @ 2024-04-24 728/week @ 2024-05-01 350/week @ 2024-05-08 261/week @ 2024-05-15 210/week @ 2024-05-22 184/week @ 2024-05-29 262/week @ 2024-06-05 194/week @ 2024-06-12 224/week @ 2024-06-19 136/week @ 2024-06-26

841 每月下载量
用于 23 个 crate(直接使用 2 个)

MIT 许可证

13KB
170

Debugtrace

Documentation

此 crate 允许在 debugtest 构建中将回溯附加到值上,而不会在 releasebench 构建中产生开销。

它使用选定的构建配置来决定是否收集回溯。在 debugtest 中,会收集回溯,如果使用 fmt::Debug{:?})打印值,则会打印回溯。在 releasebench 配置中,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);
}

当使用 debugtest 配置构建时,将输出类似以下内容:

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>)

当使用 releasebench 配置构建时,它不会收集任何回溯,只会输出

123

功能

  • backtrace:

    这将强制无论使用何种配置都要收集回溯。它还包括 Trace::resolve() 方法,以编程方式获取堆栈跟踪。

依赖关系

~335KB