gdb 条件断点

        条件断点,顾名思义就是有条件才会触发的断点,一般设置此类断点形如:b xxx if xxx,如:

要触发此断点则需要 is_created == 0。打完断点我们也可以用 info b 查看一下当前已经设置的断点信息,如:

断点触发: 

 

那这个条件是否可以随意设置呢?其实在我们打断点的时候,gdb 已经帮我们过滤了,如:

当我们随意设置一个条件时,如果在当前上下文中没有的声明或定义的话是无法设置成功的。

所以要设置成功条件,则必须为:

1,参数列表里的参数,如上面的 is_created

2,函数里的变量,如下

3,全局变量,如下 

想想为什么是这样?我想是因为断点是基于栈桢的,那一个栈帧里就包括了函数参数列表及函数里的局部变量,栈帧之外的数据肯定是不可见的,那全局变量当然也是可见的,所以这三者都可以拿来当断点的判断条件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值