Перейти к содержанию

Быстрый старт

Кратчайший путь от уже существующего проекта до окна отладчика.

1. Описать, что отлаживать

В корне своего проекта:

bugsaur init

Команда ищет вверх по дереву маркер языка — Cargo.toml, go.mod, composer.json или pyproject.toml / setup.py / requirements.txt — и пишет .bugsaur/config.toml.

Сгенерированный файл — заготовка, а не догадка. Он появляется в git status и предназначен для правки руками:

version = 1
default = "app"

[profiles.app]
adapter = "codelldb"
program = "target/debug/app"

Каждый профиль говорит, что отлаживать и каким адаптером. Относительные пути считаются от корня проекта.

Конфиг принадлежит проекту, а не редактору

bugsaur из терминала и :DebugStart из Neovim читают один и тот же файл, поэтому однажды исправленный профиль исправлен сразу для обоих.

2. Открыть окно

bugsaur gui --project . --break src/main.rs:15

Окно открывается, адаптер стартует, программа выполняется и останавливается на строке 15.

Флаг --project указывает на любой каталог внутри проекта; корнем становится ближайший вверх по дереву каталог с .bugsaur/. Профиль выбирается флагом --profile <имя>, иначе берётся default.

Для Rust сборка не делается за вас

program у Rust указывает на артефакт сборки. Если его ещё нет, запуск падает с program is not readable. Сначала соберите:

cargo build && bugsaur gui --project . --break src/main.rs:15

Go собирается автоматически, у Python и PHP собирать нечего.

3. Отлаживать

После остановки в окне видны стек, потоки и переменные в области видимости. Клавиши выполнения:

Клавиша Действие
F9 продолжить
F8 шаг с обходом
F7 шаг внутрь
Shift+F8 шаг наружу
Cmd+F2 / Ctrl+F2 остановить

F1 или ? показывает действующие привязки — те, что получились после применения всех слоёв конфигурации.

Каждая панель разобрана по очереди в Интерфейсе отладчика.

Без конфига проекта

Конфиг можно не заводить вовсе и назвать всё в командной строке:

bugsaur gui \
  --adapter codelldb \
  --program /absolute/path/to/program \
  --break /absolute/path/to/source.rs:20

Это удобно для разового запуска. Учтите: без проекта нет и корня, поэтому рабочим каталогом становится тот, из которого вы запустили команду.

Дальше

Первая сессия отладки — тот же путь, но медленно: что должно произойти на каждом шаге и что делать, если не произошло.