#tcp-socket #development #sockets #service

rdbg

快速且简单的Rust远程调试

8个版本

0.2.1 2023年1月28日
0.2.0 2023年1月27日
0.1.5 2022年12月10日

#509调试


用于 rdbg-client

MIT/Apache

21KB
388

rdbg

Crate Docs MSRV

rdbg 是一个快速且简单的Rust远程调试工具。这个crate与stdlib中的dbgprintln 宏大致相同,但它通过TCP套接字将有效负载发送到远程 查看器

用例

在许多情况下,使用 dbgprintln 宏通常就足够了。然而,有三种主要用例,这个crate非常有用

  1. 测试 - 虽然从测试中输出是可能的,但有时可能很棘手
  2. 没有stdout可用的程序(例如:Windows服务等。)
  3. 输出很多,难以区分调试输出和其他输出

在所有情况下,这个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的使用可能会将其重新启用。

无运行时依赖项

功能