Safe Rust bindings for the COM interfaces of the Windows debugging engine.
- ✅ Safe Rust bindings for Windows debugging interfaces.
- ✅ Easy-to-use macros for logging to the debugger.
- ✅ Abstractions for managing symbols, memory, and CPU registers.
- ✅ Works seamlessly with the Windows COM-based debugging system.
Add dbg to your project by updating your Cargo.toml:
cargo add dbg-rsThe dbg-rs library provides utilities to interact with the Windows debugging engine, such as executing commands, logging messages, and inspecting debug symbols. Below are some common use cases:
Use the dprintln! macro to send formatted messages to the debugger output:
use dbg_rs::dprintln;
// Example usage
dprintln!(dbg, "Hello, {}!", "Debugger");
dprintln!(dbg, "Number: {}", 42);Running commands in the debugger:
use dbg_rs::Dbg;
dbg.exec(".echo Hello, Debugger!")?;Access specific regions of the debugged process's memory:
use dbg_rs::Dbg;
let mut buffer = vec![0u8; 128];
dbg.read_vaddr(0x7FFEBEEF0000, &mut buffer)?;
println!("Read memory: {:?}", &buffer[..16]); // Print first 16 bytesFor more examples, check the examples folder in the repository.
dbg-rs is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in dbg-rs by you, as defined in the Apache-2.0 license, shall be dually licensed as above, without any additional terms or conditions.