vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION

博客讲述了在VSCode中遇到的调试环境配置错误,即点击运行后debugger异常终止,原因是选择了不匹配的编译器和调试器。解决方案包括手动修改task.json和launch.json文件,确保编译器和调试器路径一致,或者调整系统环境变量来改变默认调试环境。重点涉及VSCode的调试配置、编译器路径和环境变量设置。
摘要由CSDN通过智能技术生成

注:如已经了解launch.json及task.json如何手动配置,不用继续看了!

目录

  1. 出现的问题!

  2. 出现此问题的可能原因!

  3. 可能的解决方法!

    1.手动配置task.json或者launch.json

    2.更改环境变量


出现的问题!

  • 如果出现下面这种情况,可能是遇到了和我以前第一次配置vscode开发环境的时候出现的相似的问题!
    点击运行和调试或F5选择编译环境后,debugger异常终止,终端卡住无输出,调试控制台报错—gdb: unknown target exception 0x4000001f at 0x40156e!
    在这里插入图片描述
    在这里插入图片描述

出现此问题的可能原因!

  • 有多个调试环境,且运行调试时选择的是排在更为后面的调试环境
    例如:调试环境如下,使用MinGW64的调试环境(选择第三个编译器,这地方让我有点疑惑,见下文!)。Strawberry\\c\\bin\\g++.exe这个编译器及其调试环境应该是我之前安装Qt的时候安装的。在这里插入图片描述
    运行和调试结果如上述:出现的问题!

原因可能如下:
似乎vscode默认配置的编译器都是排在第一的调试环境对应的编译器,就挺奇怪!
查看生成的默认task.json和launch.json文件发现,task.json中配置的编译器为"C:\\Strawberry\\c\\bin\\g++.exe",然而launch.json中配置的debugger是"D:\\devcpp\\Devcpp\\MinGW64\\bin\\gdb.exe"(我对此有点疑惑,我上面选择的不是调试环境后面的编译器不应该是"D:\\devcpp\\Devcpp\\MinGW64\\bin\\g++.exe"吗,但是为啥vscode给我自动配置的编译器却是"C:\\Strawberry\\c\\bin\\g++.exe"?)默认配置的这个编译器和我们选择的debugger应该是不匹配的。如下,虽然版本都是4.9.2,但是厂家不同,可能有一点差别吧,然后导致编译链接产生的exe文件和另一厂家的debugger不能匹配!
在这里插入图片描述
task.json
在这里插入图片描述
launch.json
在这里插入图片描述


可能的解决方法!

  1. 手动配置task.json或者launch.json
    如上例中:将task.json中的编译器C:\\Strawberry\\c\\bin\\g++.exe手动改为D:\\devcpp\\Devcpp\\MinGW64\\bin\\g++.exe,运行调试后正常输出!或将launch.json中的miDebuggerPath改为Strawberry文件夹下面对应的debugger。
    当然也可以直接使用第一个调试环境,然后launch.json中的miDebuggerPath会自动配置为C:\\Strawberry\\c\\bin\\gdb.exe
    在这里插入图片描述
  2. 更改环境变量
    vscode中调试环境的顺序应该是和系统环境变量的顺序相对应的!
    在这里插入图片描述
    系统变量中的path,不懂如何更改请自行百度!
    在这里插入图片描述

在这里插入图片描述
如果一定要使用MinGW64的编译和调试环境,又不想每次手动的配置task.json文件。调整环境变量的顺序可以更改默认生成的task.json中自动配置的编译器。
在这里插入图片描述
更改环境变量后重新加载服务或重启vscode,调试环境的顺序同样更改了。在这里插入图片描述
然后选择MinGW64的调试环境,task.json中编译器会自动配置为MinGW64的编译器。调试程序正常执行,正常输出。
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值