gdb watch 类成员变量时自动失效

在gdb watch一个变量时 continue后,提示失效

(gdb)watch this->isDirty

(gdb) c

.....

Watchpoint 2 deleted because the program has left the block in
which its expression is valid.

这个一般是局部变量销毁了。已经出这个函数(或代码块)所以就不监视了。

但我这个变量是某对象的属性成员。不是局部变量。

所以就让gdb不是监视变量,而是一块内存

(gdb) p &isDirty
$9 = (bool *) 0x34a64c4
(gdb) watch *(bool*)0x34a64c4
Hardware watchpoint 8: *(bool*)0x34a64c4
(gdb) c

这就可以运行,当然要自己写下一个地址还是挺麻烦了所以可以写一句

eval "watch *(bool *)%p", &isDirty

就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值