Отладка исполняемого файла Rust¶
Остановиться внутри Rust-бинарника и посмотреть его состояние.
Предпосылки¶
codelldbвPATH—command -v codelldb- проект на Cargo
Конфиг¶
bugsaur init пишет его за вас; проверьте, что program соответствует имени
вашего бинарника.
В workspace профиль заводится на каждый бинарник, а program выглядит как
target/debug/<имя бинарника> — target/ лежит в корне workspace.
Запуск¶
Порядок важен: program указывает на артефакт сборки, а Rust Bugsaur за вас не
собирает.
Что должно произойти¶
Открывается окно, программа выполняется и останавливается на строке 15. В Variables видны локальные переменные этого фрейма, в Call Stack — как вы сюда попали.
Варианты¶
Конкретный бинарник в workspace¶
С аргументами¶
[profiles.app]
adapter = "codelldb"
program = "target/debug/app"
args = ["import", "--dry-run", "${root}/fixtures/sample.csv"]
С окружением из файла¶
[profiles.app]
adapter = "codelldb"
program = "target/debug/app"
env_file = ".env"
env = { RUST_LOG = "debug" }
Код, читающий CARGO_* в рантайме¶
cargo run выставляет переменные, которых при прямом запуске нет. Добавьте те,
что нужны коду:
Если не работает¶
| Симптом | Что делать |
|---|---|
program is not readable |
выполните cargo build; проверьте имя бинарника в program |
| Сессия не стартует | codelldb не виден через PATH — Адаптер не запускается |
| Останавливается, но переменных нет | собрано с --release; отлаживайте debug-сборку |
| Никогда не останавливается | Точки останова не срабатывают |