tree: ad8993fc7ebce0cd606ed28a524089d3e5314dc6
  1. src/
  2. tests/
  3. Cargo.lock
  4. Cargo.toml
  5. README.md
  6. rust-toolchain.toml
src/tools/miri/priroda/README.md

Priroda

Priroda is a step-through debugger for Rust programs running under Miri.

Current focus:

  • simple CLI prototype
  • single-threaded stepping with Miri's interpreter
  • source-location output after stepping
  • source-location breakpoint prototype

Setup

From miri/, install the pinned toolchain and the local cargo-miri command:

./miri toolchain
./miri install

Then build the Miri sysroot and export it for Priroda:

cargo +miri miri setup
export MIRI_SYSROOT="$(cargo +miri miri setup --print-sysroot)"

Run

Priroda currently reads MIRI_SYSROOT directly. After setup, run Priroda from miri/priroda/:

cargo run -- ../tests/pass/empty_main.rs

Test

Priroda's CLI tests also need MIRI_SYSROOT. Run them from miri/priroda/:

cargo test

If the CLI tests fail due to mismatched output, you can update the expected output files by running the tests with the --bless flag:

cargo test -- --bless

or

RUSTC_BLESS=1 cargo test

Commands

CommandDescription
Enter, s, stepExecute one Miri interpreter step.
c, continueContinue until the program finishes or reaches a breakpoint.
b <path>:<line>, break <path>:<line>Add a source-location breakpoint.
q, quitExit Priroda.

EOF also exits Priroda cleanly.

Example:

(priroda) break tests/pass/empty_main.rs:3
(priroda) continue