gdb pocket reference

断点


设置断点:

  • b function (停在函数入口)
  • b 行数 (停在当前文件中的行)
  • b 文件:行数 (停在指定文件的指定行)
b main
b 35
b source/bed.c:35

断点使能:

  • enable (使能所有断点)
  • dis 全部失能 (失能全部断点)
  • enbale 断点号 (使能某一个断点)
  • disable 断电号 (失能某一个断点)
enable
dis
enable 3
disable 3

查看断点:

info breakpoints (打印所有的断点,包括watchpoint)

条件断点:

  • b 断点位置 if 条件 ( 在某某位置上添加条件断点)
  • cond 断点号 条件 (将某个断点修改为条件断点,注意不需要像直接条件断点一样加上if)
 b main.c:16 if i == 15
 b 3 i == 15

hint

条件断点表达式及其灵活,可以使用c语言中的几乎任何表达式,但是这些表达式都需要具有布尔值, 如:

  • 逻辑运算符( <、<=、==、 !=、>、 >=、 &&、 ||、 等)
b 180 if string==NULL && i < 0
  • 位运算符 (& 、|、 ^、 >>、 <<等)
b test.c:34 if (x & y) == 1
  • 算术运算符(+、 -、 x、 /、 %、 等)
b myfunc if i % (j + 3) != 0

断点命令:

  • 可以在断点命中时执行命令commands

commands 断点号
输入命令
end

commands 3
silent (命中断点时,不打印当前的堆栈信息)
printf "Damn i am good \n"
end

这里写图片描述

hint

通过commands功能,我们可以实现vs下trace断点的功能,即程序每次命中断点打印自己需要的信息,但是继续执行

commands 3
silent
printf "Damn i am good \n"
continue (加上continue即可完成trace的功能)
end

这里写图片描述

监视点:


设置监视点:

  • 监视点是特殊的断点,并不附加在某一行代码上,而是依赖于表达式
watch i
watch (i | j > 12) && i > 24 && strlen(name) > 6 

变量:


打印当前栈中所有局部变量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值