VS Code按F5调试时将C++代码识别为Python运行如何解决
问题根因
- 现有
launch.json的调试配置列表为空,按下F5时VS Code会自动匹配当前文件类型的默认调试器,你的.cpp文件当前被错误关联了Python调试器,才会出现用Python解释器执行C++代码、报语法错误的问题。 - 已配置的g编译任务没有和C调试流程绑定,触发调试时不会自动调用编译步骤生成可执行文件。
配置步骤
修正文件关联
打开你的.cpp源码文件,查看VS Code窗口右下角状态栏的语言模式标识,如果显示Python,点击该标识,在弹出的下拉列表中选择C++,确认将.cpp后缀的默认语言关联设置为C++。补全
launch.json配置
用以下内容替换你当前空配置的launch.json,配置里的gdb路径和你Msys2的C盘默认安装路径匹配,可直接复制使用:
{ "version": "0.2.0", "configurations": [ { "name": "C/C++: g++.exe 调试活动文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe", "setupCommands": [ { "description": "启用gdb整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "设置反汇编风格为Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ], "preLaunchTask": "C/C++: g++.exe build active file" } ] }
注意:配置里
preLaunchTask的字段值必须和你tasks.json中编译任务的label值完全一致,否则会触发找不到编译任务的报错。
- 设置默认调试配置
保存两个json配置文件后回到C++源码页面,按下F5,在顶部弹出的调试环境选择列表中,选中刚才配置的C/C++: g++.exe 调试活动文件,勾选「始终使用此配置调试.cpp文件」即可。
验证结果
配置完成后按下F5,会自动调用g编译当前活动的C文件,编译无报错后自动启动gdb调试,终端正常输出Hello world!,不会再触发Python执行逻辑。
内容的提问来源于stack exchange,提问作者Canyon
相关产品推荐
相关产品推荐

