C语言纠错 VSCode调试出现launch.exe根本不存在-01
目录
一、什么问题
不少朋友刚使用vscode软件运行C代码时会出现各种各样的问题,像下面出现的情况也是比较常见的,这个问题简单翻译过来就是VS Code需要调试/运行的程序launch.exe不存在。

二、分析原因
为什么会出现这个问题?核心原因是还没把.c源文件编译成.exe可执行问题,VS Code就直接去调试了,这当然就找不到目标程序啊。知道问题原因就好解决了,这个从告警就可以看出问题出自launch.json文件。
1)我们打开一下launch.json文件:

代码解析
${fileDirname}: 表示当前打开的.c文件所在的文件夹(这里是D:\CCode\)
${fileBasenameNoExtension}:你当前打开的 .c 文件名(比如你打开了 launch.c,就会生成 launch.exe)
组合起来就是:D:\CCode\vscode\launch.exe
但问题是:你没有执行编译步骤,这个 .exe 文件根本没被生成出来,所以调试器找不到它,就报错了。
在lunch.ch这里我们没有发现错误,program 与 miDebuggerPath 两个参数都是对的。
2)打开tasks.json文件
这个配置的作用:用gcc编译你当前打开的.c文件,生成同名的.exe,并且加上-g参数生成调试信息,方便后续的调试。这里的编译功能没有成功,导致后续launch.json功能无法实现。

3)修正问题
通过检查我们发现launch.json与tasks.json文件没有什么问题,但是这里需要确保先执行编译任务,再启动调试,所以我们在launch.json文件添加一个参数就可以了:
"preLaunchTask": "gcc 编译生成exe"

三、其他问题
当确保上述两个文件没有问题时,则可能是mingw的环境配置有问题。排障如下:
1)在cmd上输入gcc -v,若显示版本信息,则表示没有问题

2)如果能正常输出版本信息,说明环境没问题;如果提示 “不是内部或外部命令”,需要先把 D:\mingw64\bin 加到系统环境变量 Path 里。

其他问题:
1.文件名字问题,使用了中文标点符号、空格、特殊字符等,可以通过重命名解决;
2.launch.json文件miDebuggerPath 参数里的 gdb.exe 路径不正确,通过输入完整的执行路径解决,注意每一级目录需要使用双斜杠,否则会报错;
3.之前出现编译失败的一些.exe文件干扰(不排除这种情况),通过删除这些文件解决。
4.task.json的label参数与launch.json文件中的"preLaunchTask"参数不一致(这种情况很常见哈),通过同步参数名字解决。
四、测试结果

五、总结
在出现launch.exe可执行程序不存在这种问题时,不要慌张,通过告警定位问题到相应的launch.json与tasks.json文件。当确定这两个文件的配置一定没有问题时,就需要从C语言的编译环境mingw的配置、文件名等地方着手排错了。好了,我们在下一个章节再见,加油!
更多推荐
所有评论(0)