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

gdb watch 类成员变量时自动失效,第1张

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

就行了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5702697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存