#backtrace #std #parse #debugging #parser

btparse-stable

一个用于检查 std::backtrace::Backtrace 的 Debug 格式的最小反序列化器

1 个不稳定版本

0.1.2 2023 年 12 月 17 日

#1864解析器实现

Download history 1793/week @ 2024-03-24 1773/week @ 2024-03-31 1786/week @ 2024-04-07 1523/week @ 2024-04-14 1794/week @ 2024-04-21 2151/week @ 2024-04-28 2400/week @ 2024-05-05 2321/week @ 2024-05-12 2088/week @ 2024-05-19 2957/week @ 2024-05-26 3323/week @ 2024-06-02 3209/week @ 2024-06-09 4080/week @ 2024-06-16 4159/week @ 2024-06-23 4147/week @ 2024-06-30 4601/week @ 2024-07-07

17,487 次每月下载
6 个 crate 中使用(通过 backtrace_printer

MIT/Apache

17KB
356

btparse

一个用于检查 std::backtrace::Backtrace 的 Debug 格式的最小反序列化器。

概述

目前,Rust 标准库正在尽可能少地导出 std::backtrace::Backtrace 的 API,并且只允许通过 DebugDisplay 特性进行检查。然而,为了为堆栈跟踪提供自定义格式,如 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 许可证定义,均应按上述方式双重许可,不附加任何额外条款或条件。

无运行时依赖