gdb命令学习

GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。一般使用gdb进行调试主要完成下面三个方面的功能:

1、可以让程序在我们指定的断点处停住。

2、用print检查程序停住之后的各个环境参数和变量的情况,用于检查当程序运行没有达到要求或者出错时的具体情况。

3、通过set动态改变程序的执行环境。

gdb使用的方式:

1、编译成可执行文件:gcc -g gdb_test.c -o gdb_test

注意:记得使用参数-g,目的是将源代码的信息编译到可执行文件中。如果没有-g参数,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。这样调试时很难判断达到调试的效果。

2、启动gdb:

a)、只启动gdb,然后再加载文件:

gdb命令学习_第1张图片

b)、启动gdb的同时加载文件:

gdb命令学习_第2张图片

3、在文件中设置相应的断点

4、运行程序

基本命令:

1、list(l):查看程序,但list一次只能显示部分程序,这时你需要直序执行list查看全部程序

gdb命令学习_第3张图片

2、break(b)  函数名/行号/文件名:行号  :在对应位置设置断点



3、info(i)  参数:查看各类信息,例如查看设置的break点情况

gdb命令学习_第4张图片

4、delete(d) 断点编号:删除对应断点编号的断点

gdb命令学习_第5张图片

5、next(n) :单步运行程序,但不进入子函数

6、step(s):单步运行程序,但遇到函数时会进入函数里面执行。

7、continue(c):继续运行程序知道遇到断点或者程序运行结束为止

8、print(p) 变量名:查看指定变量值

9、set var=value:设置变量值

10、quit(q):退出gdb

下面是我的测试用例程序

#include 

int result_print(int result)
{
        printf("The result is %d\r\n", result);

        return 0;
}

void main(void)
{
        int i = 1;
        int sum = 0;

        for (i = 1; i < 100; i++)
        {
                sum += i;
        }

        result_print(sum);
        sum = 0;
        for (i = 0; i <= 100; i = i + 2)
        {
                sum += i;
        }
        result_print(sum);

        return;
}

下面调试命令的使用:

gdb命令学习_第6张图片

gdb命令学习_第7张图片


上面的就是gdb的一些基本使用,仅作为记录以后便宜回忆和深入学习之后进行补充。

你可能感兴趣的:(c语言,linux)