Отладка nvim-dap с использованием внешнего терминалаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Отладка nvim-dap с использованием внешнего терминала

Сообщение Anonymous »

Я хочу запустить свои адаптеры отладки с внешнего терминала, потому что мне надоело постоянно адаптировать конфигурацию launch.json или dap, когда я могу просто изменить команду непосредственно с терминала. Сейчас меня интересуют только Rust, CPP и Python, поэтому я попытался повозиться с опцией Attach и адаптерами серверного типа.
Для Python это работает довольно хорошо, я могу просто вызвать debugpy с портом для прослушивания

Код: Выделить всё

python -m debugpy --listen 127.0.0.1:5678 --wait-for-client myapp.py
А затем подключитесь к отладочной программе, используя конфигурацию моего адаптера

Код: Выделить всё

dap.adapters.python = {
type = 'server',
port = 5678,
host = 127.0.0.1,
options = {
source_filetype = 'python',
},
}
dap.configurations.python = {
{
type = 'python', -- the type here established the link to the adapter definition: `dap.adapters.python`
request = 'attach',
name = "Attach to debugpy (already running)",
justMyCode = false,
}
}
Я попробовал то же самое для ржавчины/cpp с lldb-сервером.
Запустите приложение, используя

Код: Выделить всё

lldb-server g :1234 ./build/Debug/myapp.exe ../sbeer_meteocache_config.ini
Затем я попытался подключиться к нему, и хотя я вижу, что lldb-server сообщает, что соединение установлено, оно не останавливается на моей точке останова! Я попытался проверить dap.log в ~/.cache/nvim, но ничего особенно полезного не выдал. От nvim я получаю следующее уведомление:

Код: Выделить всё

Debug adapter didn't respond. Either the adapter is slow (then wait and ignore this) or there is a problem with y our adapter or 
lldb_server

Код: Выделить всё

 configuration. Check the logs for errors (:help dap.set_log_level)
Вот моя конфигурация nvim-dap для lldb-сервера:

Код: Выделить всё

-- Rust & C++
dap.adapters.lldb_server = {
type = 'server',
host = '127.0.0.1',
port = 1234,
}
local lldb_server_config = {
{
name = "Attach to lldb_server (already running)",
type = "lldb_server",
request = "attach",
stopOnEntry = true,
},
}
dap.configurations.c = lldb_server_config
dap.configurations.cpp = lldb_server_config
dap.configurations.rust = lldb_server_config
ChatGPT упоминает, что сопоставление источника неясно для lldb_server, и хочет, чтобы я также указал поле программы для конфигурации, но моя точная цель управления конфигурациями таким образом заключается в том, что я не хочу этого делать. Кроме того, для меня это не имеет смысла, поскольку сопоставление исходного кода должно быть довольно ясным, поскольку я предоставляю программу для прямого запуска lldb_server?
Что мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/798 ... l-terminal
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»