gdb调式工具的使用

使用前提

gcc生成的可执行程序默认是release版本的,要调式,必须是debug版本,要生成debug版本要加-g 选项

在这里插入图片描述

进入gdb调式工具

gdb +可执行程序
在这里插入图片描述

退出gdb

在命令行输入“quit”
在这里插入图片描述

显示行号

第一次输入l或者list:由gdb决定在哪开始显示行号(大概率在main函数附近,显示10行),之后的每次 l 会在上一次的基础上增加显示10行
在这里插入图片描述


l +行号:从这行开始显示行号
在这里插入图片描述


l +函数名:从这个函数附近开始显示行号
在这里插入图片描述

执行程序

执行程序使用 ‘run’ 的命令(可以简写成 r),直接run的没有什么意义(跟直接执行程序没区别,即是 ./mytest ),一般搭配断点使用
在这里插入图片描述

断点的相关操作

b/break

b +行号:在某一行设置断点
b +函数名:在在某个函数开头设置断点
在这里插入图片描述


之后我们在run,程序就会从这个断点停下来
在这里插入图片描述


info b

info b:查看断点信息
在这里插入图片描述


step/s

step或者s:逐语句(相当于vs中的F11,会进入函数)
在这里插入图片描述


next /n

n:逐过程(相当于vs中的F10,不会进入函数)
在这里插入图片描述


display

display +变量名:相当于vs中的监视某个变量的值
在这里插入图片描述


display +&变量名:查看地址
在这里插入图片描述


之后的每次n或者s都会显示这些变量的值(即会一直监视下去)
在这里插入图片描述


undisplay

undisplay +编号:取消监视这个编号的变量(一次可以输入多个编号)
在这里插入图片描述


直接undisplay:取消全部的监视
在这里插入图片描述


p

p +变量名:当我们只需要观察一次变量的值,而不是像监视一样一直有
在这里插入图片描述


finish

当我们s(F11,逐语句)进入某个函数,出不来时,我们可以 “finish”,直接 跑完这个函数
在这里插入图片描述


continue

continue:当有多个断点时,我们到达了一个断点,想直接到达下一个断点
在这里插入图片描述


until

until +行号:直接执行到某行(也是适用于逐语句跳不出函数或者跳不出循环的情况)
在这里插入图片描述


finish 与 continue 与 until的对比
在这里插入图片描述


d/delete

d +断点编号:删除某个断点
在这里插入图片描述


disable

disable +断点编号:不是删除断点,而是禁用断点。
在这里插入图片描述


enable

enable +断点编号:开启某个被禁用断点
在这里插入图片描述


bt

bt:查看函数栈帧
在这里插入图片描述


set var

set var +变量名=i:直接修改变量的值
在这里插入图片描述

总结

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值