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

Bugsaur

Самостоятельный графический отладчик на DAP.

Отлаживайте из редактора. Отладчик при этом остаётся независимым.

Начать GitHub

Bugsaur отлаживает программу на Rust

Зачем Bugsaur

  • Самостоятельный отладчик


    Bugsaur работает сам по себе. Он единственный DAP-клиент и хозяин состояния сессии. Закройте редактор — сессия отладки продолжит жить.

  • Не привязан к языку


    Сегодня работают Rust, C/C++, Go, Python и PHP. TOML-каталог дополняет или перекрывает встроенный список адаптеров, так что добавить можно всё, у чего есть DAP-адаптер.

  • Родной DAP


    Bugsaur говорит на Debug Adapter Protocol 1.71 напрямую с совместимыми адаптерами — без промежуточного моста и без редактора посередине.

  • Интеграция с Neovim


    Neovim остаётся source frontend: правка кода, навигация, работа с точками останова. Сессией он не владеет и заменим.

Запуск за 60 секунд

# В своём проекте — описать, что отлаживать
bugsaur init

# Отладить
bugsaur gui --project . --break src/main.rs:15

bugsaur init опознаёт язык и пишет .bugsaur/config.toml, который дальше правится руками:

version = 1
default = "app"

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

Конфиг читает отладчик, а не редактор, поэтому bugsaur из терминала и :DebugStart из Neovim видят ровно одну и ту же настройку.

Впервые здесь? Первая сессия отладки проводит путь от пустого проекта до отладчика, остановленного на точке останова.

Выберите язык

Язык Адаптер Опознаётся по
Rust codelldb Cargo.toml
C / C++ codelldb настраивается вручную
Go dlv go.mod
Python debugpy pyproject.toml, setup.py, requirements.txt
PHP php (встроенный) composer.json

PHP — единственный язык, который Bugsaur не отдаёт наружу. У него собственный DBGp-адаптер, и во время работы не нужны ни Node.js, ни npm, ни расширение VS Code — только bugsaur, php-dbgp-adapter и Xdebug.

Куда дальше

  • Первые шаги

    Поставить Bugsaur, запустить и остановиться на первой точке останова.

  • Интерфейс отладчика

    Каждая панель окна, разобранная по очереди.

  • Рецепты

    Задачи как они есть: cargo test, pytest, PHP внутри Docker.

  • Диагностика

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

Требования

macOS или Linux и закреплённый в rust-toolchain.toml тулчейн Rust (1.92) для сборки из исходников. Хотя бы один отладочный адаптер должен быть доступен через PATH.