在Visual Studio(2005/2008)中,我们可以在条件为True时设置条件breackpoint。 现在,还有另一种选择 - 何时“更改”。
这是什么意思以及我应该如何/何时使用它。
我已经看到了related page on MSDN但是这个“改变了”它对我来说仍然不明确......
感谢。
答案 0 :(得分:2)
最好用一个例子解释:
for (int ix = 0; ix < 10; ++ix) {
Console.WriteLine(ix); // Break here
}
在断点对话框中键入一个表达式,该表达式的计算结果为简单的bool或整数值。例如:“ix / 2”。当你运行它时,只要ix是偶数值,执行就会在第一次循环中断开。
这不是btw的数据断点,在另一篇文章中提到过。托管代码不支持这些。调试器实际上会暂时中断程序执行并每次评估表达式。仅在表达式值更改时停止执行。这会使您的代码作为副作用运行 lot 更慢。
答案 1 :(得分:1)
这意味着每次表达式的值发生变化时,断点都会激活。
用例是指你想要一个断点,但只有当代码中有一些有趣的东西发生变化时。例如,在一个循环中,您可能希望仅在某个值增加时才中断,而不是在循环的每次迭代中中断。
答案 2 :(得分:0)
已更改在第一次运行时未获得评估。当断点的表达式的评估发生变化时,它会中断。
答案 3 :(得分:-1)
此“已更改”条件断点仅适用于几个字节的内存(1,2,4或8),其地址和计数在断点设置中指定。在程序执行期间,当某些内容更改这些字节时,程序执行会在进行更改时中断。 通常它用于调试无意的内存/变量更改的情况,当你不知道改变你的东西的人和方式时。