Skip to content
Beskid The Beskid Book

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

02.4 Logging and debug flags

Pipeline progress, verbosity, and interpreting CLI output without drowning.

Logging and debug flags

Compiler output should tell you which phase failed, not dump an entire IR forest because you typoed one identifier.

Beskid compiler work is structured into phases reported through the shared pipeline model (beskid_pipeline phase IDs in the Rust workspace). CLI and analysis surfaces should align with those phases rather than ad-hoc println! spam in random crates.

When debugging “why is this slow,” look for:

  • Which phase repeats (resolution vs semantic vs codegen)
  • Whether you are analyzing the whole workspace vs one target

Exact flags evolve with the CLI—cross-check CLI command reference and per-command pages (analyze, build, run).

  1. Reproduce with CLI first — smaller surface than editor caches.
  2. Shrink the project — one target, one file, one diagnostic.
  3. Record versionsbeskid --version, extension version, git commit if local build.
  4. Compare locked vs floating resolution--frozen / --locked when dependency drift is suspect.
flowchart TD
  bug[Weird behavior] --> cli[Reproduce with CLI]
  cli --> small[Minimize file/target]
  small --> phase[Identify failing phase]
  phase --> spec[Check normative spec + diagnostic code]

For editor-only issues, see LSP testing and observability in the reference tree.

Reference deep dives