linux 调试器gdb

  1. 作用:①启动被调试的程序;②让被调试的程序在指定的位置停住;③当程序停住时,检查程序状态(变量值);

  1. 完整流程如下(例子,以主函数调用func函数的流程讲解):↓

使用命令:$:gcc -g text.c -o test //生成可调试程序;

命令:$:gdb ./test //启动测试

list 1 //从第一行列表开始显示,也可以简写l

[空命令] //重复进行上次命令

break 16 //在第16行处设置断点,也可简写b+行号

[显示] Breakpoint 1... //显示断点编号,1号

b func //采用b+函数名的方式也可以,即在进行该函数前断点

[显示] Breakpoint 2... //断点编号,2号

info break //查询并显示已有断点信息,将列表显示

run //程序开始运行,也可以简写r

[然后程序会停在第1号的断点处,第16行]

next //单步运行,其中下面未赋值语句将跳过(默认不是一步),也可简写n

print i //查看i现在的值,也可简写为p

n //下一步

...

continue //程序直接运行到下一个断点,如无,则运行到程序结束

...

finish //结束当前函数运行

[回到函数调用处,func]

n //下一步

[显示这一步的结果]

...

c //continue 运行

return 0; // 上面一个的continue直接运行到程序结束,本次调试只设置了两个断点

quit //退出调试模式,也可以简写q或exit

  1. 常用的命令

①list(l)

list +行号 //从行号开始处开始显示,如无行号则默认从第1行开始,往下显示10行

list+函数名 //显示指定函数的代码

②break(b)

b+函数名 //在函数入口处添加断点

b+行号 //在指定行添加代码

b 5 if i=0 //i=10时,第5行断点生效

③delete(d)

d + 断点编号 //删除断点

d 3-7 //删除第3-7号之间所有的编号

④clear(不可简写为c,因为有continue)

clear //清除全部断点

clear +函数名 //清除函数名处的断线

⑤run(r) //程序运行

⑥单步运行的两个命令

next(n) //若下一步是函数调用则默认函数整体是一步,直接通过

step(s) //进入调用函数,把函数中的每一步默认为一步步

⑦断点失效与有效

disable + 断点编号 //让断点失效

enable + 断点编号 //让断点生效

⑧kill //终止调试,但不退出

⑨set var //设置变量值

⑩start //开始调试程序,但是停在主函数第一行执行前

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值