Skip to content

Track C: Debug and Replay

Focus: stepper-first debugging, deterministic replay, and trace diagnostics.

Start Here

Run these in order: - 01_debug_stepper - 04_record_replay_perception - 07_incident_response_replay_drill

Use these when you want deeper local inspection: - 02_debug_perception_stepper - 03_debug_perception_stepper_real_camera - 08_mcap_session_inspection

If you want one longer story instead of small modules, start with: - Integrated Tutorial: Debug to Release

Modules

pixi run python -m examples.tutorial.c_debug_and_replay.01_debug_stepper
pixi run python -m examples.tutorial.c_debug_and_replay.02_debug_perception_stepper
pixi run python -m examples.tutorial.c_debug_and_replay.03_debug_perception_stepper_real_camera
pixi run python -m examples.tutorial.c_debug_and_replay.04_record_replay_perception record --out logs/perception.rrd --replay-out logs/perception.mcap --steps 10
pixi run python -m examples.tutorial.c_debug_and_replay.04_record_replay_perception replay --recording logs/perception.rrd --steps 10 --visualize stdout
pixi run python -m examples.tutorial.c_debug_and_replay.05_buffer_engine_demo
pixi run python -m examples.tutorial.c_debug_and_replay.06_trace_contract_basics
pixi run python -m examples.tutorial.c_debug_and_replay.07_incident_response_replay_drill
pixi run python -m examples.tutorial.c_debug_and_replay.08_mcap_session_inspection --recording logs/perception.mcap

Generate An HTML View

Run this from the repository root. The snippet imports a repo-local helper from examples/shared/perception_flows.py, so the repository root needs to be on the default Python path.

pixi run env PYTHONPATH=src:. python - <<'PY'
from pathlib import Path

from examples.shared.perception_flows import build_tutorial_perception_pipeline

out = Path("artifacts/tutorial_perception.html")
out.parent.mkdir(exist_ok=True)
path = build_tutorial_perception_pipeline(
    use_real_camera=False,
    show_window=False,
).visualize(str(out))

print(path)
PY

What To Observe

  • In-process stepping vs backend execution.
  • Recording one sensor or mock session, then replaying it deterministically.
  • Using replay artifacts to isolate regressions instead of guessing at live state.