无法在 Visual Studio 代码中启动 C++ 调试器

2023-11-29

我刚刚从 Netbeans 切换到 Visual Studio 代码,并且无法调试 C++,错误是Unable to start debugging. Launch options string provided by the project system is invalid. Unable to determine path...。 我尝试遵循从 google 搜索到的 Visual Studio Code 网站上的 c/c++ 调试指南,但它无法运行该应用程序,但我可以从Ctrl + Shift + B所以我的task.json 文件是正确的,所以这是我的task.json 文件和launch.json 文件。

{
    //Task.json
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    "args": ["-pipe", "-std=c++14", "${fileBasename}", "-lm"],
    "showOutput": "always"
}

//Launch.json
"version": "0.2.0",
"configurations": [
    {
        "name": "C++ Launch",
        "type": "cppdbg",
        "request": "launch",
        "program": "${workspaceRoot}/a.out",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceRoot}",
        "environment": [],
        "externalConsole": true,
        "linux": {
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
        "osx": {
            "MIMode": "lldb"
        },
        "windows": {
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    },

我只是通过执行以下操作修复了它(在 Windows 下)

  1. 已安装TDM-GCC MinGW 编译器 from https://sourceforge.net/projects/tdm-gcc/?source=typ_redirect使用默认安装路径选项。

  2. 将这些文件夹添加到 PATH 环境变量中

C:\TDM-GCC-64\bin

C:\TDM-GCC-64\gdb64\bin

  1. 在您的 launch.json 中添加 gdb 调试器的路径,您的 Windows 部分应类似于下面的代码
 "windows": {
                "MIMode": "gdb",
                "miDebuggerPath": "C:/TDM-GCC-64/gdb64/bin/gdb.exe",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ]
            }
  1. Restart Visual Studio Code and try compile (ctrl+shift+b) and run the debugger (f5)

Remark:就像其他人提到的那样,您应该在tasks.json 参数中添加 -g 选项,以便使用调试信息构建可执行文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 Visual Studio 代码中启动 C++ 调试器 的相关文章

随机推荐

  • 在 PostgreSQL 中设置时间戳列的时区

    我在 PostgreSQL 表上有一个更新时间戳字段的触发器 但我想将其置于正确的时区 如何将我的列默认设置为始终处于 PST 这是我的触发器 ALTER TABLE coastal ADD latest report TIMESTAMP
  • Rails + Hotwire:为什么我的链接在单击时消失了?

    我正在尝试将 Hotwire Turbo 合并到现有的 Rails 应用程序中 我已将涡轮框架添加到简单的编辑页面 但现在当我单击后退按钮时 它会消失而不是带我到目标页面 链接很简单link to Back my model show pa
  • 获取 SciPy 的 gaussian_kde 函数使用的带宽

    我正在使用 SciPy统计数据 gaussian kde函数从数据集生成核密度估计 kde 函数x y points 这是我的代码的简单 MWE import numpy as np from scipy import stats def
  • 为什么我会收到一个编译错误,显示 error: ‘else’ without previous ‘if’?

    当我尝试编译代码时 出现错误 else 没有前面的 if Fibonacci series using recursion include
  • 如何找到两个矩形之间距离最近的两点?

    我正在尝试找到能够找到代表两个矩形之间最近距离的两个点的算法 点赞积分C and J形成下图中的最小距离 我试图不在这里重新发明轮子并使用已经经过战斗测试的东西 例如增强 几何 距离 但它只返回距离 而不返回点数 不要让事情变得过于通用 通
  • 使用 out 参数的优点和缺点是什么

    任何人都可以指出 out 参数的优缺点 当首选使用 out 参数而不仅仅是返回值时 输出参数有效地允许您从方法返回多个值 这通常比返回包含多个值的任意结构或元组更可取 有人可能会说 使用 out 参数的函数更容易忽视可能的副作用 因为它偏离
  • S3 签名 URL 在参数通过之前就过期了

    我正在尝试为 S3 存储桶对象生成签名 URL 最大过期时间为 604800 秒或 7 天 然而 经过测试 我发现链接在 24 小时内就会过期 经过一番挖掘 我发现这篇文章声称只有当 aws sdk 获得 IAM 用户授权并且 s3 库使用
  • Python正则表达式找不到子字符串,但它应该找到

    我正在尝试使用 BeautifulSoup 解析 html 来尝试提取网页标题 有时这不起作用 因为网站写得不好 例如Bad End标签 当这不起作用时 我会转到手动正则表达式 我有文字 n n n
  • boost::python 传递 python::list 的引用

    我真的很想知道是否有可能将 python 列表的引用传递给 boost python c dll 我想要实现的是我有一个Python列表 可以随时在C 中读取 假设您在 C 中有一个变量来保存对列表的引用 有什么办法可以做到这一点吗 到目前
  • Await 要求类型 Task 有合适的 GetAwaiter 方法

    我只是将我的工作应用程序从 4 6 1 移至框架 4 0 我遇到了唯一的一个问题 我收到的错误消息如主题所示 我还有第二个错误 SendPingAsync is not a member of Ping 主题错误出现在该行突出显示的以下方法
  • Docker Prisma 错误 P1001:无法访问 `postgres` 处的数据库服务器:`5432`

    经过几个小时的搜索 我必须鞠躬并向您询问有关我的问题的一些建议 我的后端 express prisma postgresql 是 Dockerized 的 可以正常运行 但我无法使用npx prisma来自我的 wsl2 zsh 终端的命令
  • GitHub 页面未加载 CSS

    我有一个发布了 GitHub 页面的网站 https safelyswift github io Swizzle 我想用docs css style css in my index html文件 我尝试过使用完整的 url GitHub 原
  • 将 Unicode 字符打印到 PowerShell 提示符

    我正在尝试设置 Mercurial 以使用 PowerShell 打印出我当前所在的存储库的状态 到目前为止 我已经一切正常 但我希望能够在存储库中时在提示符下打印 不幸的是 PowerShell 在打印 Unicode 字符方面似乎存在一
  • RCurl中的密码SSH认证方法

    我正在使用ftpUpload函数在RCurl用于将文件上传到 sftp 文件服务器的包 我在进行身份验证调用时遇到困难 以下是我的电话 ftpUpload what some file png to sftp some ftp server
  • 隐藏导航窗格

    好的 所以我需要隐藏导航窗格 但很困难 我正在使用一个模块来隐藏它 并尝试了以下方法但无济于事 DoCmd NavigateTo acNavigationCategoryObjectType DoCmd RunCommand acCmdWi
  • 如何使用 C# 将格式化的 HTML 字符串复制到剪贴板以进行粘贴?

    我的最终目标是将格式化的富文本插入 Outlook 检查器 例如 AppointmentItem MailItem 等 我在 MSDN 论坛上问了这个问题 有人回答我应该使用剪贴板复制内容 然后使用我想要使用的目标格式将其粘贴到窗口中 我有
  • 如何更改模拟导入的行为?

    我对 Jest 中的模拟以及如何对实现进行单元测试感到非常困惑 问题是我想嘲笑不同的预期行为 有什么办法可以实现这一点吗 因为导入只能位于文件的顶部 并且为了能够模拟某些内容 必须在导入之前声明它 我还尝试传递一个本地函数 这样我就可以覆盖
  • 嵌套 FormGroup 的 FormControl 是 ng-valid,尽管 FromGroup 是 ng-invalid

    我有一个名为 等级 的嵌套表单组 尽管嵌套表单组 grades 应用了 ng invalid 类 但子表单控件确实应用了 ng valid 类 为什么失效没有从嵌套表单继承到其控件 this schoolyearForm this form
  • 无法确定关联的主体

    在这种关联中 我收到错误 无法确定类型 Foo 和 Bar 之间关联的主要端 必须使用关系流畅 API 或数据注释显式配置此关联的主要端 public class Foo public int Id get set public int M
  • 无法在 Visual Studio 代码中启动 C++ 调试器

    我刚刚从 Netbeans 切换到 Visual Studio 代码 并且无法调试 C 错误是Unable to start debugging Launch options string provided by the project s