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

Введение

Bugsaur — графический отладчик, который работает сам по себе. Он общается с отладочными адаптерами по Debug Adapter Protocol, поэтому не привязан к одному языку и не нуждается в редакторе.

Идея одной строкой

Отладкой владеет отладчик. Редактор остаётся source frontend.

Обычно сессией владеет редактор: он запускает адаптер, держит состояние и рисует интерфейс. Закрыли редактор — сессия умерла вместе с ним. Bugsaur переворачивает эту схему. Bugsaur — единственный DAP-клиент и хозяин состояния сессии. Neovim, если вы им пользуетесь, правит код, ходит по исходникам и заведует точками останова — и больше ничего.

Neovim — source frontend Ядро Bugsaur Окно Bugsaur
Правка кода DAP-сессия Переменные, watches
Навигация по исходникам Управление исполнением Потоки, стек вызовов
Работа с точками останова Состояние выполнения Evaluate, логи

У такого разделения есть практические следствия:

  • Отладчик запускается и работает вообще без редактора — bugsaur gui из терминала это полноценный способ работы.
  • Точки останова переживают редактор. Они лежат в .bugsaur/breakpoints.json, и перезапуск Neovim их не теряет.
  • Настройка одна на двоих. .bugsaur/config.toml читает отладчик, поэтому bugsaur из терминала и :DebugStart из Neovim видят ровно одно и то же.

Что понадобится

Платформа macOS или Linux
Rust закреплённый в rust-toolchain.toml тулчейн (1.92) для сборки из исходников
Адаптер хотя бы один: codelldb, dlv, debugpy или встроенный php
Neovim по желанию — только для source frontend

Куда дальше

  1. Установка — установить Bugsaur и вывести адаптер в PATH.
  2. Быстрый старт — кратчайший путь от проекта до окна.
  3. Первая сессия отладки — полный разбор до остановки на точке останова.

Если интересно устройство, а не применение — IPC, жизненный цикл сессии, владение адаптером — это лежит в Разработка → Архитектура, намеренно в стороне от первых шагов.