VSCode, MacOS Catalina - не останавливается на точках останова на отладке C / C ++ - PullRequest
2 голосов
/ 10 октября 2019

Я пытаюсь заставить точки останова работать с кодом C, разработанным с использованием VSCode на Mac.

Кажется, что мой код компилируется и работает нормально (благодаря файлу openssl / crypto.h ненайдено в vscode BTW), но я не получаю никаких точек останова, даже при запуске с использованием "stopAtEntry": true или при подключении к запущенному процессу.

My tasks.json и launch.json очень стандартны:

{
    "tasks": [
        {
            "type": "shell",
            "label": "clang build active file",
            "command": "/usr/bin/clang",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-I/usr/local/opt/openssl/include",
                "-L/usr/local/opt/openssl/lib",
                "-lssl",
                "-lcrypto"
            ],
            "options": {
               "cwd": "/usr/bin"
            }
        }
    ],
    "version": "2.0.0"
}

И:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Attach",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/test2",
            "processId": "${command:pickProcess}",
            "MIMode": "lldb"
        },
        {
            "name": "clang build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb",
            "preLaunchTask": "clang build active file",
            "logging": {
                "trace": false,
                "traceResponse": false,
                "engineLogging": false
              }
        }
    ]
}

Мне известно, что VS код игнорирует точку останова в отладке c ++ и во всех подобных обсуждениях здесь.

Моя установка: MacOS Catalina (10.15, производство) вместе с XCode 11.1, Visual Studio Code 1.39.0 и расширением C / C ++ 0.26.0-insiders3.

Кому-нибудь повезло больше, чем мне?

1 Ответ

3 голосов
/ 10 октября 2019

Таким образом, очевидно, что это известная проблема с поддержкой Catalina и XCode 11.x: https://github.com/microsoft/vscode-cpptools/issues/3829, вызванная lldb-mi.

lldb-mi - это драйвер, который находится между IDEи сам API lldb .

Похоже, что версия lldb-mi, поставляемая в комплекте с плагином, не совместима с Catalina, и XCode 11.x больше не имеет lldb-mi.

Поток github предлагает 2 временных решения:

lldb-mi

Первое решение заключается в использовании lldb-mi, который поставляется в комплекте с предыдущими версиями XCode, путемустановка свойства miDebuggerPath для launch.json.

У меня получился XCode 10.1, поэтому моя конфигурация:

"miDebuggerPath":"/Applications/Xcode 10.1.app/Contents/Developer/usr/bin/lldb-mi",

Мне удалось запустить базовую отладку, но есть ожидаемых проблем совместимости . Однако этого оказалось достаточно для моих нужд (ууу!).

Замена интерфейса lldb

Второе решение - использовать расширение VSCode-lldb .

Обновления приходят сюда

Я буду держать этот ответ и этот пост обновленным постоянным решением, как только оно появится.

...