2009-12-24 68 views

回答

2

最好用一个例子来解释:

for (int ix = 0; ix < 10; ++ix) { 
    Console.WriteLine(ix); // Break here 
    } 

类型中,其值是简单的布尔或积分值断点对话框的表达式。例如:“ix/2”。当你运行它时,执行将在循环的第一遍中断,并且只有当ix是一个偶数值时。

这不是一个数据断点btw,暗指在另一篇文章。这些在托管代码中不受支持。调试器实际上暂时中断程序执行并每次评估表达式。只有当表达式值发生变化时才停止执行。这可以使你的代码运行一个批次作为一个副作用。

+0

“bool或整数值”如果我在表达式中有一个复杂的类,让我们说一个(winforms)按钮* btn *和我将更改* btn.Text *将断点打破?或者,如果我有* myString *从“测试”更改为“文本”将被认为是“改变”? – serhio 2009-12-28 09:09:58

+0

没有可以设置断点的代码。实现TextChanged事件。 – 2009-12-28 10:07:17

1

这意味着每次表达式的值改变时,断点都会被激活。

用例是当你想要一个断点时,但只有当有趣的东西在代码中发生了变化。例如,在一个循环中,您可能只想在某些值增加时断开,而不是在循环的每次迭代中断开。

0

已更改在第一次运行时未得到评估。当断点表达式的评估发生变化时,它会中断。

+0

错误。它只是勾住记忆 - 不涉及评估。 – alemjerus 2009-12-24 15:16:03

-1

此“已更改”条件断点仅适用于内存(1,2,4或8)的几个字节,其地址和计数您在断点设置中指定。在程序执行过程中,当某些内容改变了这些字节时,程序执行会在进行更改的时候中断。 通常,它用于调试无意识内存/变量更改的情况,当您不知道是谁以及如何完全更改您的内容时。

相关问题