Я настраивал удаленную среду отладки, используя docker, на котором установлен lldb-6.0.Я также использовал GDB для настройки процесса.Мой файл launch.json имеет конфигурации как для gdb, так и для lldb.GDB работает нормально, но vscode не может подключиться к lldb, потому что он передает один дополнительный аргумент: --interpreter = mi.Я получаю ошибку:
/usr/bin/lldb-6.0: unrecognized option '--interpreter=mi'
GDB может распознать это, но lldb не распознает.
Мой файл launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "LLDB debug",
"type": "cppdbg",
"request": "launch",
"program": "/tmp/project/hello.out",
"args": [],
"stopAtEntry": false,
"cwd": "/tmp/project",
"environment": [],
"externalConsole": false,
"pipeTransport": {
"debuggerPath": "/usr/bin/lldb-6.0",
"pipeProgram": "docker",
"pipeArgs": [
"exec",
"-i",
"dev-image",
"sh",
"-c"
],
"pipeCwd": ""
},
"sourceFileMap": {
"/tmp/project": "${workspaceRoot}/project"
},
"MIMode": "lldb",
"miDebuggerPath": "/usr/bin/lldb-6.0",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"customLaunchSetupCommands": [
{
"text": "target-run",
"description": "run target",
"ignoreFailures": false
}
]
},
{
"name": "GDB debug",
"type": "cppdbg",
"request": "launch",
"program": "/tmp/project/hello.out",
"preLaunchTask": "hello world build",
"args": [],
"stopAtEntry": false,
"cwd": "/tmp/project",
"environment": [],
"externalConsole": false,
"pipeTransport": {
"debuggerPath": "/usr/bin/gdb",
"pipeProgram": "docker",
"pipeArgs": [
"exec",
"-i",
"dev-image",
"sh",
"-c"
],
"pipeCwd": ""
},
"sourceFileMap": {
"/tmp/project/": "${workspaceRoot}/project"
},
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
]
}
Нужно ли устанавливатьправильные расширения отладки lldb или я могу сделать эту работу, добавив некоторые атрибуты launch.json?
*********** ОБНОВЛЕНИЕ Я нашел решение.Проблема была в том, что я использовал lldb.Не лдб-ми.LLDB-mi - это инструмент, который помогает отправлять и получать некоторые сообщения на основе протокола, чтобы сделать возможной удаленную отладку.В конфигурации отладки LLDB необходимо внести два изменения
"debuggerPath": "/usr/bin/lldb-mi-6.0"
"miDebuggerPath": "/usr/bin/lldb-mi-6.0",