Quick and dirty debugging

3 releases (breaking)

Uses new Rust 2021

0.2.0 Nov 5, 2022
0.1.0 Oct 23, 2022
0.0.0 Oct 20, 2022

#559 in Development tools

Download history 22/week @ 2022-10-16 27/week @ 2022-10-23 13/week @ 2022-10-30 14/week @ 2022-11-06 2/week @ 2022-11-13

61 downloads per month

MPL-2.0 license

288 lines

Build Status Code Coverage Dependency status crates.io Downloads Github stars Documentation License

Dirty debug

dirty-debug offers a quick and easy way to log message to a file (or tcp endpoint) for temporary debugging.

A simple but powerful way to debug a program is to printing some messages to understand your code’s behavior. However, sometimes you don’t have access to the stdout/stderr streams (for instance, when your code is loaded and executed by another program). dirty-debug offers you a simple, no-setup, way to log to a file:

ddbg!("/tmp/debug_log", "Control reached here.  State={}", state);

It’s as simple as that. Every time you call ddbg!() you will append the debug message to that file, together with the filename and line number of the source code’s location.

Note that this is not meant to be a normal form of logging: dirty-debug should only be used temporarily during your debug session and discarded after that.

Logging to a TCP endpoint

You can also use dirty-debug to log to a TCP endpoint instead of a file:

ddbg!("tcp://", "Hello!");

Probably the easiest way to listen to a TCP endpoint in the target computer is by using netcat:

$ ncat -l 12345
[src/lib.rs:123] Hello!


~87K SLoC