rdbg 0.1.2

Quick and dirty Rust remote debugging
Documentation

rdbg

Crate Docs MSRV

Quick and dirty Rust remote debugging. This crate is more or less equivalent to dbg and println in the stdlib but delivers the payloads via a TCP socket to a remote viewer.

Features

  • No dependencies
  • Enabled and added in seconds
  • Familiar API
  • Can be quickly be removed or compiled into "no-op"

Example

let world = "world!";
// More or less equivalent to `println`
rdbg::msg!("Hello {}", world);

// More or less equivalent to `dbg`
rdbg::vals!(world, 1 + 1);

That works fine for servers and long running programs, but since the messages are delivered via a different thread there is an implicit race condition. As such, if your program is not a server or long running you will likely need the wait_and_quit function at the end of your program. This will pause execution until all messages have been sent via the TCP socket.

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::quit_and_wait();

Usage

[dependencies]
rdbg = "0.1.2"

Features

  • enabled (default) - enables debugging
  • insecure-remote - Listens on 0.0.0.0 for remote debugging purposes (insecure, no auth)

Use --no-default-features option to quickly turn this crate into a no-op. Please note that due to feature unification other uses of this crate within the same project could turn it back on.