使用 gcc、g++ 和 gdb 在 Window 7 上设置 VSCode 进行 C/C++ 调试

2023-12-03

我正在遵循以下指示here。安装了cpptools。已创建tasks.json包含以下内容:

{
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    "showOutput": "always",
    "args": ["-g", "helloworld.c"]
}

And launch.json包含以下内容:

{
    "version": "0.2.0",
    "configurations": [

        {
            "name": "C++ Launch (Windows)",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceRoot}/a.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "externalConsole": false,
            "windows": {
                "MIMode" : "gdb",
                "miDebuggerPath": "C:\\Mahesh\\Program Files\\mingw\\MinGW\\bin\\gdb.exe"
            }

        },
        {
            "name": "C++ Attach (Windows)",
            "program": "${workspaceRoot}/a.exe",
            "type": "cppvsdbg",
            "request": "attach",
            "processId": "${command.pickProcess}",
            "windows": {
                "MIMode" : "gdb",
                "miDebuggerPath": "C:\\Mahesh\\Program Files\\mingw\\MinGW\\bin\\gdb.exe"
            }
        }
    ]
}

当我做Ctrl+Shift+B,代码构建,生成a.exe。当我运行调试时,它给出以下输出:

--------------------------------------------------------------------------------
You may only use the C/C++ Extension for Visual Studio Code with Visual Studio
Code, Visual Studio or Xamarin Studio software to help you develop and test your
applications.
--------------------------------------------------------------------------------
Loaded 'C:\Mahesh\repos\VSCodeC\polyaddition\a.exe'. Symbols are not loaded.
Loaded 'C:\Windows\System32\ntdll.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\kernel32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\sysfer.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\msvcr100.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\QIPCAP64.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\oleaut32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\ole32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\msvcrt.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\gdi32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\user32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\lpk.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\usp10.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\rpcrt4.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\imm32.dll'. Symbols are not loaded.
Loaded 'C:\Windows\System32\msctf.dll'. Symbols are not loaded.
The thread 9524 has exited with code 0 (0x0).
Hello World!!!
The program '[7876] a.exe' has exited with code 0 (0x0).

但代码没有达到我在代码中设置的调试点。你可以看到,它正在打印“Hello World!!!”。我该如何配置才能在调试时单步执行代码?

环境:

  • 程序“[7876] a.exe”已退出,代码为 0 (0x0), 配置为“i686-pc-mingw32”。
  • gcc.exe(x86_64-win32-seh-rev201506,mingwpy 版本)4.9.2
  • g++.exe(x86_64-win32-seh-rev201506,mingwpy 版本)4.9.2

Update

  • 在讨论中comments,我被要求运行 gccm32标志,因为我的编译器是 64 位的,它可能会生成 64 位二进制文​​件。但gcc -m32 helloworld.c给出了类似的错误this. The 在这里发表评论解释它与-m32选项。它要求添加i686-w64-mingw32/x86_64-w64-mingw32编译时的标志。但gcc -x86_64-w64-mingw32 helloworld.c gives language not recognized error, gcc -i686-w64-mingw32 helloworld.c gives unrecognized command line option。我做错了什么?
  • Also this文章说目前只能在 Linux 上进行调试,而在 Windows 上则不行。是这样吗?

我相信您正在尝试使用 VS Code 调试器 (cppvsdbg) 而不是 gdb (cppdbg)。此修改launch.json我使用 TDM-GCC 和 gdb 作为调试器:

{
"version": "0.2.0",
"configurations": [
    {
        "name": "C++ Launch",
        "type": "cppdbg",
        "request": "launch",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceRoot}",
        "environment": [],
        "externalConsole": true,

        "linux": {
            "program": "${workspaceRoot}/a.out",
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
        "osx": {
            "MIMode": "lldb"
        },
        "windows": {
            "miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe",
            "program": "${workspaceRoot}\\a.exe",
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    },
    {
        "name": "C++ Attach",
        "miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe",
        "type": "cppdbg",
        "request": "attach",
        "program": "${workspaceRoot}/a.exe",
        "processId": "${command:pickProcess}",
        "linux": {
            "MIMode": "gdb",
            "program": "${workspaceRoot}/a.out",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
        "osx": {
            "MIMode": "lldb"
        },
        "windows": {
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    }
    ]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 gcc、g++ 和 gdb 在 Window 7 上设置 VSCode 进行 C/C++ 调试 的相关文章

  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • 迭代变量并查找特定类型实例的技术

    我想迭代进程中内存中的变量 通过插件动态加载 并查找特定类型的实例 以前我可以找到特定类型 或内存中的所有类型 我可以创建类型的实例 我可以获取作为不同类型的字段包含的实例 但我无论如何都不知道只是 搜索 特定类型的实例 一种方法是使用 W
  • 使用post方法将多个参数发送到asp.net core 3 mvc操作

    使用 http post 方法向 asp net mvc core 3 操作发送具有多个参数的 ajax 请求时存在问题 参数不绑定 在 dot net 框架 asp net web api 中存在类似的限制 但在 asp net mvc
  • C# 中的接口继承

    我试图解决我在编写应用程序时遇到的相当大的 对我来说 问题 请看这个 为了简单起见 我将尝试缩短代码 我有一个名为的根接口IRepository
  • 构造函数中显式关键字的使用

    我试图了解 C 中显式关键字的用法 并查看了这个问题C 中的explicit关键字是什么意思 https stackoverflow com questions 121162 但是 那里列出的示例 实际上是前两个答案 对于用法并不是很清楚
  • 显示异常时的自定义错误消息:从客户端检测到潜在危险的 Request.Form 值

    我在我的 Web 应用程序中使用 ASP NET 的登录控件 当发生此异常时 我想在标签上显示一种有趣的错误类型System Web HttpRequestValidationException A potentially dangerou
  • 如何使用recv()检测客户端是否仍然连接(并且没有挂起)?

    我写了一个多客户端服务器程序C on SuSE Linux 企业服务器 12 3 x86 64 我为每个客户端使用一个线程来接收数据 我的问题是 我使用一个终端来运行服务器 并使用其他几个终端来运行服务器telnet到我的服务器 作为客户端
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 如何挤出平面 2D 网格并赋予其深度

    我有一组共面 连接的三角形 即二维网格 现在我需要将其在 z 轴上挤出几个单位 网格由一组顶点定义 渲染器通过与三角形数组匹配来理解这些顶点 网格示例 顶点 0 0 0 10 0 0 10 10 0 0 10 0 所以这里我们有一个二维正方
  • g++ 对于看似不相关的变量“警告:迭代...调用未定义的行为”

    考虑以下代码strange cpp include
  • 当前的 x86 架构是否支持非临时加载(来自“正常”内存)?

    我知道有关此主题的多个问题 但是 我没有看到任何明确的答案或任何基准测量 因此 我创建了一个处理两个整数数组的简单程序 第一个数组a非常大 64 MB 第二个数组b很小 无法放入 L1 缓存 程序迭代a并将其元素添加到相应的元素中b在模块化
  • 转到定义:“无法导航到插入符号下的符号。”

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我今天突然开始在我的项目中遇到一个问题 单击 转到定义 会出现一个奇怪的错误 无法导航到
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder

随机推荐

  • 从根节点 XML 读取值

    我有这个 XML A型
  • 修复 UnboundLocalError

    def main cash float input How much money coins 0 def changeCounter n while True if cash n gt 0 cash n coins 1 else break
  • iOS 中 ImageView 的阴影效果

    我试图为我的 Imageview 提供阴影效果 就像这张图片中一样 但我面临的问题是阴影实际上从 Imageview 的底部可见 这是我添加阴影的代码 颜色什么的还是和这个不匹配 CAGradientLayer shadow CAGradi
  • PHP:发送WORD文档文件下载

    这个问题很琐碎 有很多答案 全部相同或几乎相同 但对于我的情况 它没有按预期解决 目标 使用 PHP 将 WORD 文件作为附件发送 简单 意思是 这是代码 send the file to the browser header Cache
  • 在 XSLT 导入/包含中使用动态 href?

    The
  • jquery mobile w/ php 登录表单

    我是使用 jquery mobile 和 php 的新手 提交后 我的登录表单上的提交按钮出现了一些问题 它转到 home php 页面 但 url 也没有转到 home php 它仍然是 login php 我怎样才能解决这个问题
  • Android中如何将session_id保存为cookie值并将其发送到服务器?

    我正在开发一个使用网络服务调用的应用程序 我正在调用我的登录网络服务 如下所示 String url http mydomaim com login php UserFunctions userFunction new UserFuncti
  • 如何在php中回显echo?

    我有一些基本的 PHP 代码 raceramps56 short My Test Product leftMenu div class leftMenuProductButton div 不会回显 PHP 代码 仅回显元素 我尝试过类似的事
  • pyspark fillna 不适用于 ArrayType 列

    我有一个 Spark 集群版本 3 1 2 我有以下输入数据 name gender arr James M 60000 Michael M 70000 31 Robert null 44 400000 Maria F 500000 12
  • RStudio 中与 Shiny 相关的问题

    我想在从 RStudio 选择 Shiny 中定义的选项时插入表格和图表 当选择 选择所有属性 选项时 我想在同一页面上显示 Table1 和 Graph1 如果我按选项 排除产生小于 L 且大于 S 的属性 则仅显示 Table2 和 G
  • 根据另一行中的值获取平均值

    我的 Excel 文件中有这样的值 QR QR AVG val1 q1 5 q1 3 q1 4 q2 7 q2 9 q3 10 q3 11 q3 12 q3 11 q4 5 q5 5 q5 7 我希望 QR AVG 字段表示由不同 QR 值
  • Azure Active Directory 与 MVC,客户端和资源标识同一应用程序

    跟进这个问题 如何在 ASP NET MVC 上执行 Azure Active Directory 单点登录和表单身份验证 我尝试在默认 MVC 4 的登录操作上编写简单的代码 该代码同时使用默认的表单身份验证和 Azure Active
  • Firebase / Firestore 将文档添加到子集合版本 9

    出于某种原因 我只是不明白 我想将新文档添加到子集合中 这是我的布局如下 Users Collection UID Document Lists Collection Category Document Category Document
  • 如何更改 ColorDialog 的标题?

    我正在旋转一个ColorDialogWinForms 中的组件让用户选择特定自定义控件的图表的背景色和前景色 两个配置选项都位于配置对话框的同一页面上 因此我想在弹出对话框时将颜色对话框的标题设置为 背景颜色 以更改图表的背景 并将 网格颜
  • Jackson - 循环依赖导致反序列化失败

    好的 所以我正在尝试使用 jackson json 转换器测试一些东西 我正在尝试模拟图形行为 所以这些是我的 POJO 实体 JsonIdentityInfo generator ObjectIdGenerators PropertyGe
  • 使用 Castle Windsor 在 ASP.NET MVC 中实现多租户的最佳实践是什么?

    我有一个具有两种不同实现的服务 我想注入到控制器构造函数中 具体取决于一个标准 目前该标准是存储在会话中的一个简单值 这是我现在得到的 服务接口 public interface IService string GetSampleText
  • 如何向后视觉选择计算?

    我想直观地向后选择计算 p e 200 3 This is my text 300 2 9 3 This is text 0 25 2 000 sqrt 15 1 5 原因是我会在插入模式下使用它 编写计算后 我想选择计算 使用地图 并将计
  • getScript 或 eval 在特定位置?

    我想知道 eval 或 jQuery 的 getScript 的某些变体 是否可以用于将外部 javascript 定位在 DOM 末尾或头部以外的位置 我试过了 var head document getElementById fig 代
  • 如何将 Microsoft 用户从 Azure 同步到 Keycloak

    我们正在尝试找出一种将用户从 Azure 帐户同步到 Keycloak 的方法 不幸的是 我们找不到它的文档 你知道正确的方法吗 我想使用 Azure 作为外部数据库 可用于对用户进行身份验证 谢谢 我想使用 Azure 作为可用于进行身份
  • 使用 gcc、g++ 和 gdb 在 Window 7 上设置 VSCode 进行 C/C++ 调试

    我正在遵循以下指示here 安装了cpptools 已创建tasks json包含以下内容 version 0 1 0 command g isShellCommand true showOutput always args g hello