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

CodeLLDB

Языки: Rust, C, C++ · Транспорт: TCP

Запись каталога:

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

Bugsaur выбирает свободный порт, передаёт его как --port=<порт> и подключается к 127.0.0.1.

Установка

Поставьте CodeLLDB и выведите бинарник в PATH:

command -v codelldb

Если он пришёл из Mason:

export PATH="$HOME/.local/share/nvim/mason/bin:$PATH"

Проверка

codelldb --version

Если команда отработала, адаптер установлен. Если сессия всё равно не стартует, значит его не видит отладчик — проверьте PATH того окружения, в котором запускается Bugsaur, а оно не обязательно совпадает с вашим шеллом.

Сборки нет

В каталоге у CodeLLDB нет записи build, поэтому Bugsaur для него ничего не собирает: адаптер получает уже существующий бинарник. Для Rust это означает сначала cargo build, для C и C++ — вашу собственную команду сборки.

program в профиле — это собранный бинарник, а не исходник и не каталог.

Собирать с отладочной информацией

В оптимизированном бинарнике отладчику работать почти не с чем: переменные читаются как вырезанные оптимизатором, фреймы заинлайнены, точки останова попадают на неожиданные строки.

  • Rust: отлаживайте debug-сборку, а не --release.
  • C / C++: -g -O0.

Подключение к процессу

[profiles.attach]
adapter = "codelldb"
program = "build/app"
mode = "attach"

[profiles.attach.launch_arguments]
pid = 4242

Настройки самого адаптера

Всё, что CodeLLDB принимает, но чему нет поля в схеме профиля, передаётся через launch_arguments без изменений:

[profiles.remote.launch_arguments]
sourceMap = { "/build" = "${root}" }
terminal = "console"

Bugsaur их не интерпретирует — смысл принадлежит CodeLLDB. Полный список ищите в его документации.

Диагностика

Симптом Причина Что делать
Сессия не стартует codelldb не виден через PATH проверьте command -v или задайте adapter_command
program is not readable бинарник не собран соберите сначала
Переменные показаны как вырезанные оптимизатором release-сборка пересоберите в debug, -g -O0
Точки останова не привязываются неисполняемые строки или нет отладочной информации Точки останова не срабатывают
Нет исходника у ваших собственных фреймов пути изменились после сборки Исходник не найден