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

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

目录

  1. 出现的问题!

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

  3. 可能的解决方法!

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

    2.更改环境变量


出现的问题!

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

出现此问题的可能原因!

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

原因可能如下:
似乎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不能匹配!
vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION_第3张图片
task.json
vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION_第4张图片
launch.json
vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION_第5张图片


可能的解决方法!

  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
    vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION_第6张图片
  2. 更改环境变量
    vscode中调试环境的顺序应该是和系统环境变量的顺序相对应的!
    vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION_第7张图片
    系统变量中的path,不懂如何更改请自行百度!
    vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION_第8张图片

vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION_第9张图片
如果一定要使用MinGW64的编译和调试环境,又不想每次手动的配置task.json文件。调整环境变量的顺序可以更改默认生成的task.json中自动配置的编译器。
vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION_第10张图片
更改环境变量后重新加载服务或重启vscode,调试环境的顺序同样更改了。vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION_第11张图片
然后选择MinGW64的调试环境,task.json中编译器会自动配置为MinGW64的编译器。调试程序正常执行,正常输出。
vscode配置C/C++开发环境(MinGW64)后调试程序出现EXCEPTION_第12张图片

你可能感兴趣的:(vscode,vscode,c++)