linux 调试工具gdb

什么是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 打印变量的值

这里写图片描述

  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值