纯小白 尝试用vs code debug c/c++程序

2024-02-29

vs code太高级了,搞了半天也没明白它的工作原因。现在hello world的门槛都这么高了吗?

我使用的vs code版本:version 1.87.0

 第一步:

新建一个目录hello作为工程目录。File -> Open Folder... 打开hello目录。

在新工程根目录下新建文件main.c   File -> New File...

#include <stdio.h>

int main(){
    printf("sdf");
    return 3;
}

如果只是想看运行结果,直接在main.c文件中右击选中Run Code就可以看到运行结果

如果想debug打断点,继续往下看。

然后直接点运行.

我这里的报错是:

 这时候系统已经帮我们生成

c_cpp_properties.json

launch.json

settings.json

3个配置文件了。直接点开Open 'launch.json'文件。

 Terminal -> Configure Default Build Task 生成默认的tasks.json文件。

 运行task任务

报错: Cannot build and debug because the active file is not a C or C++ source file.

未发现c源文件。

 

 我就修改了两处${file}换成了main.c   options下的cwd换成了当前工程目录,然后点保存(很重要),再次运行任务task成功了。

 记住这个生成可执行文件的路径是:d:/c/hello/build/Debug/outDebug

然后回到launch.json文件

把里面的

   "program": "d:/c/hello/build/Debug/outDebug",

改成  

      "program": "d:/c/hello/.vscode/tasks.exe",
就可以了。
在main.c里面打一个断点,可以开始debug了。
 

 ---------------------------------------------------------------------------------------------------

中间出现一个小插曲:

明面上是说MiDebuggerPath的参数不对。看默认是

     "miDebuggerPath": "gdb",
这个gdb.exe就是c的debug工具。后来机缘巧合,我才发现,这个gdb.exe本来应该是在MinGW/bin下面的,我发现我的目录没有,果然重新下载一个MinGW,然后最新的MinGW里面的bin下面是有gdb.exe
,问题完美解决。
给一下MinGw的下载地址:

链接:https://pan.baidu.com/s/10BdhTWWS0VO2LDf9_llQrg
提取码:qkpw

 

 因为胳膊拧不过大腿,vs code里面的launch.json中的program总是被系统自动改成build/Debug/outDebug这个目录了,

为什么了统了,我们也修改一下tasks.json里面的生成路径吧

 

 

有时候,为了编译和运行一步搞定,可以把launch.json中指定任务

 

"preLaunchTask": "C/C++: gcc.exe build active file"
preLaunchTask的值,对应tasks.json中的label的值。

 

 

posted on 2024-02-29 11:47  angelshelter  阅读(20)  评论(0编辑  收藏  举报

导航