【Linux】Linux中的gdb调试器的使用


需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。


 目录

一、什么是gdb?

二、gdb的安装

三、gdb的使用

1、只有debug版可以被调试

2、gdb的常用指令

2.1显示代码:l指令(list指令)

2.2设置断点:b指令(break指令)

2.3显示断点/禁用断点/开启断点:info b指令/disable指令/enable指令

2.4删除断点:d指令(delete指令)

2.5执行代码:r指令(run指令)

2.6逐过程:n指令(next指令)

2.7逐语句:s指令(step指令)

2.8运行到下一个断点:c指令(continue指令)

2.9查看函数调用堆栈:bt指令

2.10跑完当前函数:finish指令

2.11临时查看变量:p指令

2.12长期监视/取消监视变量的值:display指令/undisplay指令

2.13跳转到某一行:until指令

2.14修改变量的值:set var指令

2.15显示当前函数内临时变量:info locals


一、什么是gdb?

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

二、gdb的安装

sudo yum install gdb

三、gdb的使用

gdb debug版可执行文件

1、只有debug版可以被调试

因为Linux中生成的可执行程序默认是release版本,是不带debug调试信息的。

只有debug版可以被调试,那么我们在编译的时候需要加上-g选项,这样生成的可执行程序就是debug版。

我们可以使用readelf指令查看ELF格式的文件信息:

可以发现debug版本中有debug信息,这也是debug版比release版体积大的原因。

2、gdb的常用指令

2.1显示代码:l指令(list指令)

因为gdb的l指令并不是从第一行开始显示,如果想从第一行开始显示,可以输入l 0,这样就会在屏幕上显示10行代码。

gdb中会记忆上次输入的指令,按下回车键即可执行上一次的指令。

2.2设置断点:b指令(break指令)

b 18

b18表示在第18行设置断点。

2.3显示断点/禁用断点/开启断点:info b指令/disable指令/enable指令

info b指令会显示出所有的断点。Enb表示断点的状态,y表示断点正常使用,n表示断点已被禁用。

2.4删除断点:d指令(delete指令)

想要删除哪个断点不是看这个断点在代码中的行号,而是在断点列表的编号。这里要删除第2个断点,直接d 2即可。

2.5执行代码:r指令(run指令)

执行代码后会在断点处停下。

2.6逐过程:n指令(next指令)

就是vs中的F10。

2.7逐语句:s指令(step指令)

就是vs中的F11。

2.8运行到下一个断点:c指令(continue指令)

/

2.9查看函数调用堆栈:bt指令

/

2.10跑完当前函数:finish指令

finish可以挨个函数跑一遍,先粗略的确定是哪个函数的问题。

2.11临时查看变量:p指令

p 变量名

临时查看变量的值。

2.12长期监视/取消监视变量的值:display指令/undisplay指令

监视:

2.13跳转到某一行:until指令

因为15行是空行所以跳到了第16行。

需要在当前函数使用,不能乱跳转。

2.14修改变量的值:set var指令

set var i=50

修改i为50。

2.15显示当前函数内临时变量:info locals

显示当前函数内的临时变量。

  • 25
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒋灵瑜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值