【Linux】Linux调试器-gdb

一、什么是gdb?

gdb是Linux中的调试器。用于debug版本代码的调试

使用须知

  • 程序的发布方式有两种,debug模式和release模式
  • 在Linux gcc/g++生成的可执行程序,默认是release模式
  • 要使用gdb调试,必须在源代码生成可执行程序的时候, 加上 -g 选项,也就是生成debug的版本
gcc  mytest.c -o mytest_g -g 

我们可以使用 readelf 指令查看ELF格式的文件信息:
在这里插入图片描述
可以看到debug的版本中有debug的数据,这也是debug版本比release版本体积大的原因。

安装gdb

sudo yum install gdb

二、gdb的使用

断点

1、显示源代码:l (list)

l 指令并不是从第一行开始显示,如果想从第一行开始显示,可以输入l 0,这样就会显示前10行的代码。
在这里插入图片描述

在gdb中按回车键即可执行上一次的指令。

2、设置断点: b (break)

b 25

b 25表示在第25行设置一个断点。
在这里插入图片描述

3、显示断点/禁用断点/开启断点:info b / disable / enable

info b指令会显示出所有的断点。
在这里插入图片描述

Enb表示断点的状态,y表示断点正常使用,n表示断点已被禁用。
在这里插入图片描述

  • 注意:断点设置时是按行号设置,设置后的断点都有各自的编号Num,对断点的操作都要对应其编号

4、删除断点:d(delete)

在这里插入图片描述

这里要删除第2个断点,直接d 2即可。

调试

1「run/r」:运行代码(启动调试)。

2「next/n」:逐过程调试。

3「step/s」:逐语句调试。

4「until 行号」:跳转至指定行。

5「finish」:执行完当前正在调用的函数后停下来(不能是主函数)。

6「continue/c」:运行到下一个断点处。

7「set var 变量=x」:修改变量的值为x。

显示

1「list/l n」:显示从第n行开始的源代码,每次显示10行,若n未给出则默认从上次的位置往下显示.。

2「list/l 函数名」:显示该函数的源代码。

3「print/p 变量」:打印变量的值。

4「print/p &变量」:打印变量的地址。

5「print/p 表达式」:打印表达式的值,通过表达式可以修改变量的值。

6「display 变量」:将变量加入常显示(每次停下来都显示它的值)。

7「display &变量」:将变量的地址加入常显示。

8「undisplay 编号」:取消指定编号变量的常显示。

9「bt」:查看各级函数调用及参数。

10「info/i locals」:查看当前栈帧当中局部变量的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值