gdb断点(六)condition 与ignore


如果为一个断点设置一个条件,每当程序到达这个断点的时候都会去判断是否为TRUE,
只有条件为TRUE时才会在断点出停下。断点条件的调试方式与断点断言的调试方式逻辑是想反的,assert是当条件为FALSE时停止,
所一如果在条件调中用断言的话应该是:condition !assert(exp)。
断点的条件调试优越性在同个地方设置多个断点的时候体现的更完美。这样我们就可以控制在
同一个断点,因不同的条件(不同的地方调用)而停止程序,同时你也可以自定义命令行,来

打印所需要的信息。


设置断点的条件方式如下:


1、设置断点的时候加入条件
break foo if value_a > value_b

2、用condition命令

condition bnum expression


例如: condition 6 if value_a == 10
如果你设置的断点条件,无效会提示:(这于断点的上下文有关,关于断点的上下文会子专门章节阐述)
No symbol "foo" in current context

3、取消断点条件

condition bnum


4、断点条件特殊用法
断点条件的一个特殊用法是,程序只有在到达断点一定次数之后才会停止。这用一个特殊的命令可以实现。
ignore bnum count

ignore 设置的触发条件在重新加载程序之后自动删除。

ignore 2 10 //触发断点10次后,才会停止,每次触发断点count自减1
如果一个断点及设置了条件,又设置了触发次数,在触发次数count为0之前,是不会判断断点的条件。
ignore 命令对breakpoint watchpoint catchpoint都有效。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值