VsCode中配置GDB调试

1.工程创建

我创建的工程如下所示

main.c:需要调试的主函数

opera.c:创建了一个库函数

opera.h:调用库函数的头文件

Makefile:编译脚本

.vscode:里面放GDB调试配置文件,这个文件夹前面有个点

VsCode中配置GDB调试_第1张图片

具体文件如下:

main.c

#include 
#include "opera.h"

int main()
{
    int a = 20;
    int b = 15;
    int result;

    result = add_t(a, b);
    printf("add_t 20 15 : result = %d\n", result);

    result = sub_t(a, b);
    printf("sub_t 20 15 : result = %d\n", result);

    result = mult_t(a, b);
    printf("mult_t 20 15 : result = %d\n", result);

    return 0;
}

 opera.c

#include "opera.h"

int add_t(int a, int b)
{
    return a + b;
}

int sub_t(int a, int b)
{
    return a - b;
}

int mult_t(int a, int b)
{
    return a * b;
}

opera.h

#ifndef __OP_H_
#define __OP_H_

int add_t(int a, int b);
int sub_t(int a, int b);
int mult_t(int a, int b);

#endif 

Makefile

CC = gcc 

FILENAME = test  #编译完生成的文件

all:$(FILENAME)

$(FILENAME):main.o opera.o
	$(CC) main.o opera.o -o $(FILENAME)
	@rm *.o

main.o:main.c
	@$(CC) -c -g main.c

opera.o:opera.c
	@$(CC) -c -g opera.c

clean:
	rm -rf $(FILENAME)

运行make进行编译,生成test可执行文件

gcc 编译时要加上 -g 选项才能开启GDB调试

2.GDB配置

首先在.vscode文件夹里创建一个launch.json文件,此文件用于配置vscode的GDB调试

VsCode中配置GDB调试_第2张图片

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",                     //显示在“调试启动配置”下拉列表中的易于阅读的名称
            "type": "cppdbg",                           //用于此启动配置的调试器类型,此处表示C/C++代码
            "request": "launch",                        //此启动配置的请求类型。"launch" 表示启动一个新的程序,"attach" 表示连接到一个已经运行的程序。
            "program": "${workspaceFolder}/test",       //你的程序路径,${workspaceFolder}表示当前路径,就是你整个工程下
            "args": [],                                 //程序入口参数
            "stopAtEntry": true,                        //程序启动时立即中断,设置后会停在主函数处
            "cwd": "${workspaceFolder}",                //用于查找依赖项和其他文件的当前工作目录
            "environment": [],                          //程序运行时的环境变量
            "externalConsole": false,                   //控制台设置
            "MIMode": "gdb",                            //指定了调试器的模式
            // "miDebuggerArgs": "C:/msys64/mingw64/bin/gdb", //GDB的路径
            "setupCommands": [                          //gdb 启动后要执行的一些命令
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            //"preLaunchTask": "make"  // 在启动前执行的任务,通常是构建任务,需要新建tasks.json文件,一般不使用,自己编译就行
        }
    ]
}

这里需要注意下 "cwd": "${workspaceFolder}"这个参数,一般我们在编译程序的时候使用了-g参数就会包含进源文件的路径,此处源文件的路径就是当前目录。如果说你把当前路径的源文件比如main.c移动到了其他的路径,那么GDB调试时就会找不到这个文件,此时可以配置下 "cwd"这个参数,把新的路径给添加进来,那么GDB在当前路径找不到该文件时会去cwd路径找对应文件。

"miDebuggerArgs"这个参数用于配置GDB调试器的路径,如果说你在环境变量中已经配置了路径,那么此处不需要进行配置。

配置完后按F5或者左边点击调试按钮开启GDB调试

VsCode中配置GDB调试_第3张图片

 3.远程GDB调试

你可能感兴趣的:(vscode,ide,编辑器)