gdb的使用

🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【Linux的学习】
📝📝本篇内容:进入gdb;list/l 行号;r;break/b 行号;info break;delete breakpoints;disable breakpoints 和enable breakpoints;n或next等
作者简介:轩情吖,请多多指教(> •̀֊•́ ) ̖́-

1.进入gdb

程序的发布方式有两种,debug模式和release模式
在这里插入图片描述
在Linux下也是同样的,但是在Linux gcc/g++出来的二进制程序,默认是release模式,因此要使用Linux下的gdb调试,则必须在源代码生成二进制程序的时候,加上-g选项
在这里插入图片描述
大家仔细看,release和debug的大小不一样,debug版本的更大,他其中包含了很多调试信息,可以使用readelf -S 文件名 | grep -i debug来查看有哪些调试信息
在这里插入图片描述
上图为进入gdb的样子

2.list/l 行号

在这里插入图片描述
list和l都是可以使用的,在后面还可以加上行号,也可以一直回车,接着上次的位置往下列,每次列10行
在这里插入图片描述
也可以使用 l 函数名 来列出某个函数的源代码

2.r

r是运行程序开始调试,相等于vs下的F5,其实他更适合跟后面要讲的断点相配合使用
在这里插入图片描述
因为没有断点,所以说直接运行出了结果

3.break/b 行号

break是在某一行设置断点
在这里插入图片描述
后面也可以加的是函数名
也可以 break 是文件名:函数
在这里插入图片描述

4.info break

info break是用来查看断点信息的
在这里插入图片描述

5.delete breakpoints

删除所有断点
在这里插入图片描述
delete breakpoints n:删除序号为n的断点
注意:一定是序号
在这里插入图片描述
其实本质上好多命令都是可以缩写的,就像删除断点,可以是 d 序号

6.disable breakpoints 和enable breakpoints

disable breakpoints:禁用断点
enable breakpoints:启用断点
禁用断点后,运行时不会用到这个断点
在这里插入图片描述

7.n或next

n是指的是逐过程,相当于vs下的F10
在这里插入图片描述

8.s或step

s或step:逐语句,相等于vs下的F11
在这里插入图片描述

9.display和undisplay

display:长显示,跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的那些变量的跟踪
在这里插入图片描述
在这里插入图片描述

10.until 行号

until 行号:在函数内,进行指定位置跳转,执行完区间代码
在这里插入图片描述

11.finish

finish:进入一个函数,只执行完该函数,就停下来
在这里插入图片描述

12.continue(c)

continue(c):从一个断点处,直接运行至下一个断点处
在这里插入图片描述

13.set var

set var n=xxx:设置某一个变量是特定的值
在这里插入图片描述
在这里插入图片描述

14.bt

查看调用堆栈
在这里插入图片描述

15.p 变量

p 变量:打印变量值
在这里插入图片描述

🌸🌸gdb的使用的知识大概就讲到这里啦,博主后续会继续更新更多Linux的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

轩情吖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值