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

Каталог адаптеров

Встроенные адаптеры

id Язык Чем ставить Чем проверить Транспорт
codelldb Rust, C, C++ релиз CodeLLDB или Mason codelldb --version TCP
dlv Go go install github.com/go-delve/delve/cmd/dlv@latest dlv version TCP
debugpy Python pip install debugpy в интерпретатор проекта python3 -m debugpy --version stdio
php PHP make build — идёт в комплекте с Bugsaur command -v php-dbgp-adapter stdio

Встроенный каталог

Ровно так, как его задаёт Bugsaur:

[adapters.dlv]
id = "dlv"
command = "dlv"
args = ["dap", "--check-go-version=false"]
tcp_argument = "--listen={host}:{port}"
transport = { tcp = { host = "127.0.0.1" } }

[adapters.dlv.build]
command = "go"
args = ["build", "-gcflags=all=-N -l", "-o", "{out}", "{program}"]

[adapters.codelldb]
id = "codelldb"
command = "codelldb"
tcp_argument = "--port={port}"
transport = { tcp = { host = "127.0.0.1" } }

[adapters.debugpy]
id = "debugpy"
command = "python3"
args = ["-m", "debugpy.adapter"]
transport = "stdio"

[adapters.php]
id = "php"
command = "php-dbgp-adapter"
transport = "stdio"

[adapters.php.launch_arguments]
port = 9003
sessionMode = "server"

dlv — единственная запись со build, php — единственная с умолчаниями в launch_arguments.

Откуда читается каталог

Встроенный каталог всегда служит основой. Поверх него:

Порядок Путь
1 $XDG_CONFIG_HOME/bugsaur/adapters.toml
2 $HOME/.config/bugsaur/adapters.toml

--adapters <путь> заменяет этот поиск одним названным файлом. Отсутствующий файл ошибкой не считается; нечитаемый попадает в предупреждение и пропускается.

Записи сливаются по id: существующий id заменяет встроенную запись, новый добавляет адаптер.

Поля записи каталога

Ключ Тип Описание
id строка id, на который ссылаются профили
command строка исполняемый файл, разрешается через PATH
args массив строк его аргументы
cwd строка рабочий каталог процесса адаптера
env таблица строк окружение процесса адаптера
transport "stdio" или таблица tcp как Bugsaur с ним общается
tcp_argument строка где слушать TCP-адаптеру; подставляются {host} и {port}
launch_timeout целое секунд ожидания ответов на launch / attach и configurationDone
launch_arguments таблица умолчания для тела DAP-запроса
build таблица command и args, с {out} и {program}

Что перебивается в профиле

Поле профиля Что делает
adapter_command взять этот исполняемый файл вместо command из каталога
launch_timeout перебить таймаут каталога
build перебить сборку из каталога
launch_arguments перебить умолчания каталога, ключ за ключом

Язык и форма программы

Адаптер program — это Собирает ли Bugsaur
codelldb собранный бинарник нет
dlv каталог пакета да
debugpy скрипт собирать нечего
php каталог проекта собирать нечего

Как добавить свой

См. Адаптеры → Свои адаптеры.