8个版本
0.2.1 | 2023年1月28日 |
---|---|
0.2.0 | 2023年1月27日 |
0.1.5 | 2022年12月10日 |
#509 在 调试 中
用于 rdbg-client
21KB
388 行
rdbg
rdbg 是一个快速且简单的Rust远程调试工具。这个crate与stdlib中的dbg 和 println 宏大致相同,但它通过TCP套接字将有效负载发送到远程 查看器。
用例
在许多情况下,使用 dbg 和 println 宏通常就足够了。然而,有三种主要用例,这个crate非常有用
- 测试 - 虽然从测试中输出是可能的,但有时可能很棘手
- 没有stdout可用的程序(例如:Windows服务等。)
- 输出很多,难以区分调试输出和其他输出
在所有情况下,这个crate不能替代常规调试器。如果您希望/需要使用完整的调试器,请务必使用。
功能
- 无依赖项
- 启用和添加仅需几秒钟
- 熟悉的API
- 可以快速移除或编译成 "no-op"(无操作)
示例
let world = "world!";
// More or less equivalent to `println`
rdbg::msg!("Hello {}", world);
// More or less equivalent to `dbg`
rdbg::vals!(world, 1 + 1);
这对于服务器和长时间运行的程序效果很好,但由于消息是通过不同的线程传递的,因此存在隐式竞争条件。因此,如果您的程序不是服务器或长时间运行的程序,您可能需要在程序末尾调用 flush
函数。这将等待所有排队消息发送完成。对于失败的测试,需要在崩溃点之前调用此函数才能看到输出。
let world = "world!";
// More or less equivalent to `println`
rdbg::msg!("Hello {}", world);
// More or less equivalent to `dbg`
rdbg::vals!(world, 1 + 1);
// Wait for messages to be transmitted before exiting
rdbg::flush();
用法
[dependencies]
rdbg = "0.2"
功能
enabled
(默认)- 启用调试insecure-remote
- 监听 0.0.0.0 以用于远程调试(不安全,无认证)
使用 --no-default-features
选项将此crate快速转换为无操作。请注意,由于功能统一,同一项目中的其他此crate的使用可能会将其重新启用。