Ubuntu 16.04环境下用VSCode调试C语言

Ubuntu 16.04环境下用VSCode调试C语言

前提:已安装GCC编译器、VSCode调试C的相关插件等

一、 单个文件的调试

参考:https://code.visualstudio.com/docs/cpp/config-linux。

1、 建立工程目录,在终端中打开vscode

在这里插入图片描述
在这里插入图片描述

2、 输入一段代码

在test.c中输入如下代码

#include <stdio.h>

int main(void)
{
    int i,sum;
    for(i = 0; i < 10;i ++)
    {
        sum += i;
        printf("sum = %d\n",sum);
    }
}

3、 创建一个tasks.json

提示:这个文件是告诉VScode如何编译程序

  • 1)在主菜单中选择 终端->配置默认生成任务
    在这里插入图片描述
  • 2)选择 c/c++: gcc build active file,即生成tasks.json.

在这里插入图片描述
tasks.json文件内容如下:

{
// 有关 tasks.json 格式的文档,请参见
    // https://go.microsoft.com/fwlink/?LinkId=733558
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "gcc build active file",
            "command": "/usr/bin/gcc",//设置指定一个程序去运行
            "args": [           //args指定传递给gcc的命令行参数
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}
  • 3)运行构建

    a.回到test.c,该任务将构建活动文件----test.c
    b. 运行tasks.json中定义的构建任务,按Ctrl+Shift+B或从终端主菜单选择运行生成任务
    c.

在这里插入图片描述
d.创建新终端,查看当前路径,会发现有可执行文件生成。
在这里插入图片描述
e.该可执行文件可以通过 ./test 运行,可以试一下。
在这里插入图片描述

  • 4)修改tasks.json
    可以修改 ${file}"${workspaceFolder}/*.c" 以构建多个c文件。
    也可以修改输出文件名 "${fileDirname}/${fileBasenameNoExtension}" 用带有带有硬编码的文件名(比如:test.out)。

4、 创建一个launch.json

F5调试程序时启动GDB调试器,在主菜单中选择 添加配置->c++(GDB/LLDB)->gcc-产生和调试活动文件
在这里插入图片描述
launch.json内容如下

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gcc - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "gcc build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

stopAtEntry 改为true,如果为false的话,不会在源代码中添加任何断点,而true,在主程序的最开始会停止,方便调试。

5、 回到主程序,可以开始调试。

在这里插入图片描述
在这里插入图片描述

6、 退出vscode前,先关闭文件夹

在这里插入图片描述

二、 多文件工程的调试

参考:https://www.cnblogs.com/songshuaiStudy/p/10728985.html

提示:大体与单个文件相同

1、创建多文件工程

在工程文件夹下,创建四个文件夹,每一个文件夹都有对应的.c.h文件,在工程文件夹下在创建一个main.c。创建完成后打开 VScode。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、编程

add.h中输入如下程序

#ifndef _ADD_H
#define _ADD_H

int add(int a,int b);

#endif

add.c中输入如下程序

#include "add.h"

int add(int a,int b)
{

    return (a + b);

}

其余文件,格式相同,这些程序的功能分别为加减乘除,自己补充完毕即可。
main.c中输入如下程序

#include "stdio.h"
#include "./add/add.h"
#include "./sub/sub.h"
#include "./mul/mul.h"
#include "./dev/dev.h"

int main(int argc, const char **argv)
{
    int a = 10, b = 2;

    printf("a + b = %d\r\n", add(a, b));
    printf("a - b = %d\r\n", sub(a, b));
    printf("a * b = %d\r\n", mul(a, b));
    printf("a / b = %d\r\n", dev(a, b));
    
    getchar();
    
    return 0;
}

3、生成tasks.json并修改

提示:生成tasks.json方法与单个文件相同

修改tasks.json如下:

{
// 有关 tasks.json 格式的文档,请参见
    // https://go.microsoft.com/fwlink/?LinkId=733558
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "gcc build active file",
            "command": "/usr/bin/gcc",
            "args": [
                "-g",
                "${file}",
                "${fileDirname}/add/add.c",
                "${fileDirname}/sub/sub.c",
                "${fileDirname}/mul/mul.c",
                "${fileDirname}/dev/dev.c",  
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

即加入

 "${fileDirname}/add/add.c",
 "${fileDirname}/sub/sub.c",
 "${fileDirname}/mul/mul.c",
 "${fileDirname}/dev/dev.c",

在这里插入图片描述

4、创建一个launch.json

提示:与单个文件调试相同

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gcc - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "gcc build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

5、返回main.c,开始调试

在这里插入图片描述

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值