假设我定义了一个var在主函数中命名的变量。我为它设置了一个观察点。然后我输入另一个名为func(). 此时,观察点可能会被删除,因此我无法访问该变量。有什么方法可以让您随时随地保持观察点?
另外,我知道我可以使用类似的语法print main::var来打印出变量的值。但这还不够。有什么好主意吗?
gdb 的一个奇怪之处在于它watch试图尊重表达式的所有组成部分的范围。因此,如果您watch var, 并且var超出范围,则观察点将被删除。这也适用于更复杂表达式的元素,例如watch a + b.
这当然是有道理的,而且在某种程度上很酷——但它很少是你真正想要的。根据我的经验,不关心范围而只想观看一些内存是更正常的。
为此,请传递-location给watch命令。这将执行您更常用的操作——只需要表达式引用的内存。所以,watch -location var。
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |