linux 调试工具gdb

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_40921797/article/details/82425060

什么是gdb

调试器GDB是Linux下最常见的调试工具。它具有人们可以想到的大多数调试工具的使用特性。gdb调试工具的作用是帮助程序员/用户看到每条指令执行过程中发生了什么。

gdb的基本操作过程

我们接下来用下面这段代码做为例子完成调试:

//vim test.c
#include<stdio.h>
#include<stdlib.h>

void print()
{
    int val=10;
    while(val--)
    {
        printf("this is pubilc :%d\n",val);
        sleep(1);
    }
}
int main()
{
    print();
    return 0;
}

1.对利用vim写好的程序,gcc /g++ 完成编译链接,生成可执行程序。
只是通过gcc/g++的程序,是不能够实现调试得。

gcc -g test.c -o test
//-g 的意思是显示调试信息

这是加了-g的调试后显示信息
这里写图片描述
2.打开某exe可执行文件的调试

gdb ./exe   //(exe 表示某可执行文件),“./”表示当前目录下,当然这里也可以给绝对路径

3.运行该可执行文件 类似与我们vs中的 F5

run
//run 命令可以使的程序开始执行,我们需要停止继续执行可以ctrl +c 终止

这里写图片描述
4.开始逐步调试 类似于我们的vs中的F10/F11

start

这里写图片描述
5. 执行下一步

n // num 相当于F10,执行当前步操作,当遇到函数调用,直径执行完被调用函数
s // step相当于F11,执行当前步操作,当遇到函数调用时,进入被调用函数内部,继续操作

按n调试的结果:
这里写图片描述
按s调试的结果:
这里写图片描述
6.显示当前执行行代码上下5行代码

l   //list 列出

这里写图片描述
7.设置、查看、删除断点

b test.c :8 
//breakpoint line 设置断点,当我们利用run执行时,会停在b所在的断点行处
//这句话的意思是,在test.c中的第8行添加一个断点

这里写图片描述

i b //infor 查看断点信息

这里写图片描述

d 8 //d num 删除某一行的断点,若不写num则默认删除全部断点
c //continue 继续运行到下一个断点处。

8.退出调试

quit

这里写图片描述

9.查看变量

watch val //监测变量val的变化,当监测到变量值改变运行停止
p  val //print 打印变量的值

这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40921797/article/details/82425060