【问题标题】:How to set gdb as debugger for the C/C++ extension pf VSCode on MacOS?如何在 MacOS 上将 gdb 设置为 C/C++ 扩展 pf VSCode 的调试器?
【发布时间】:2021-06-02 20:23:47
【问题描述】:

Microsoft 的 C/C++ Extension for VSCode 允许设置 launch.json 文件,您可以使用该文件设置如何调试和运行 C++ 代码。默认情况下,它具有 lldb 作为 MacOS 的调试器。

我想知道如何将 gdb 设置为调试器而不是 lldb。

我试过了,它告诉我:

无法开始调试。 GDB 意外退出,退出代码为 134 (0x86)。

这就是我的launch.json 文件的样子:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++-9 - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "osx": {
                "miDebuggerPath": "/usr/local/bin/gdb",
                "MIMode": "gdb"
            },
            
            "preLaunchTask": "C/C++: g++-9 build active file"
        }
    ]
}

【问题讨论】:

    标签: c++ macos visual-studio-code gdb vscode-debugger


    【解决方案1】:

    确保您已安装 gdb。 为此,您可以使用:

    brew install gdb
    

    然后使 gdb 二进制文件被认证。因为:

    ...现代达尔文内核限制了假设的能力 控制另一个进程(这里是为了调试它), 因为这种能力是恶意软件的福音。为了说 taskgated 以授予对 gdb 的访问权限,后者必须配备 权利,其中包括内部的数字签名元数据 gdb 二进制文件。

    发件人:https://sourceware.org/gdb/wiki/PermissionsDarwin

    要创建认证,请按照以下说明操作: https://sourceware.org/gdb/wiki/PermissionsDarwin

    完成后,按照here 的指示验证二进制文件。

    那就试试这个launch.json:

    {
        // Use IntelliSense to learn about possible attributes.
        // Hover to view descriptions of existing attributes.
        // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "name": "g++ - Build and debug active file",
                "type": "cppdbg",
                "request": "launch",
                "program": "${fileDirname}/${fileBasenameNoExtension}",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${fileDirname}",
                "environment": [],
                "externalConsole": false,
                "MIMode": "gdb",
                "preLaunchTask": "C/C++: g++ build active file"
            }
        ]
     }
    

    【讨论】:

      猜你喜欢
      • 2017-07-31
      • 2021-05-10
      • 2022-07-12
      • 2021-02-16
      • 2020-05-15
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      相关资源
      最近更新 更多