假设我定义了一个名为var
在主函数中。我为其设置了一个观察点。然后我输入另一个函数func()
。此时,观察点可能会被删除,这样我就无法访问该变量了。有什么方法可以让您随时随地保持观察点吗?
另外,我知道我可以使用类似的语法print main::var
打印出变量的值。但这还不够。有什么好主意吗?
gdb 的一个奇怪之处是watch
尝试尊重表达式所有组成部分的范围。所以,如果你watch var
, and var
超出范围,观察点将被删除。这也适用于更复杂表达式的元素,例如watch a + b
.
当然,这是有道理的,并且在某种程度上很酷——但这很少是您真正想要的。根据我的经验,不关心范围而只想观察一些内存是更正常的。
为此,请通过-location
to the watch
命令。这将执行您更常见的操作——只需要表达式引用的内存。所以,watch -location var
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)