VS中的条件BreakPoint - 值已更改。如何使用?

时间:2009-12-24 14:46:33

标签: .net visual-studio debugging breakpoints

在Visual Studio(2005/2008)中,我们可以在条件为True时设置条件breackpoint。 现在,还有另一种选择 - 何时“更改”。

这是什么意思以及我应该如何/何时使用它。

我已经看到了related page on MSDN但是这个“改变了”它对我来说仍然不明确......

感谢。

4 个答案:

答案 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),其地址和计数在断点设置中指定。在程序执行期间,当某些内容更改这些字节时,程序执行会在进行更改时中断。 通常它用于调试无意的内存/变量更改的情况,当你不知道改变你的东西的人和方式时。