1 个不稳定版本
0.1.2 | 2023 年 12 月 17 日 |
---|
#1864 在 解析器实现
17,487 次每月下载
在 6 个 crate 中使用(通过 backtrace_printer)
17KB
356 行
btparse
一个用于检查 std::backtrace::Backtrace
的 Debug 格式的最小反序列化器。
概述
目前,Rust 标准库正在尽可能少地导出 std::backtrace::Backtrace
的 API,并且只允许通过 Debug
和 Display
特性进行检查。然而,为了为堆栈跟踪提供自定义格式,如 color-backtrace
这样的库需要能够遍历堆栈跟踪的帧,并访问其各种成员,如文件名和行号。
此库提供了一个临时的解决方案。直到 std 最终导出稳定的迭代器接口来访问堆栈跟踪帧,此库将尝试解析堆栈跟踪不稳定 Debug 输出的最佳努力。这将允许如 color-backtrace
这样的库为 std::backtrace::Backtrace
提供不稳定支持,直到它最终稳定。
一旦 std 最终稳定,此库将更新内部结构,以依赖于提供的迭代器 API,而不是可能脆弱的解析。
用法
cargo add btparse
let bt = std::backtrace::Backtrace::capture();
let bt_parsed = btparse::deserialize(&bt);
许可证
根据您的选择,在以下两者之一下获得许可:[Apache License, Version 2.0](https://github.com/jondot/btparse/blob/HEAD/LICENSE-APACHE) 或 [MIT 许可](https://github.com/jondot/btparse/blob/HEAD/LICENSE-MIT)。除非您明确声明,否则任何有意提交以包含在此 crate 中的贡献,根据 Apache-2.0 许可证定义,均应按上述方式双重许可,不附加任何额外条款或条件。