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的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪