• Stars
    star
    182
  • Rank 211,154 (Top 5 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created about 8 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A graphical debugger for Rust MIR

Priroda

Priroda is a graphical (UI in browser) debugger for Rust programs

Setup

You need a few things before you can get started. At the very minimum you need to have the graphviz libraries present.

  • debian/ubuntu: apt install libgraphviz-dev

Next, you're going to want a libstd with full MIR. The easiest way to obtain this is via cargo miri:

# Install cargo miri:
rustup component add miri
# Compile libstd:
cargo miri setup
# Set the MIRI_SYSROOT environment variable to the path printed by the setup command:
export MIRI_SYSROOT=...

Features

  • Supports commands known from gdb
    • next, step, continue
  • Inspect memory of all stack frames visually
  • Follow pointers by clicking hyperlinks
  • Track your progress through a function in a graph of the MIR
  • Style your debugging experience with CSS

Usage

cargo run some_rust_file.rs will automatically start a http server and open a browser. UI is changing rapidly right now, so you need to figure out how to use it by yourself (or by asking on irc) for now.

Contributing and getting help

Check out the issues on this GitHub repository for some ideas. There's lots that needs to be done that I haven't documented in the issues yet, however. For more ideas or help with running or hacking on Priroda, you can ask at #miri on the rust-lang zulip.

Miri

This project depends entirely on Miri. So if you want to improve something that we fail to interpret, add a unit test to Miri and fix it there.

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.