在Visual Studio(2005/2008)中,当条件为True时,我们可以设置条件违约点。 现在,还有一个选项 - 什么时候是“更改”。VS中的条件断点 - 值已更改。如何使用?
这是什么意思,以及如何/何时应该使用它。
我看到已经related page on MSDN但这种“改变”它仍不清楚我...
感谢。
在Visual Studio(2005/2008)中,当条件为True时,我们可以设置条件违约点。 现在,还有一个选项 - 什么时候是“更改”。VS中的条件断点 - 值已更改。如何使用?
这是什么意思,以及如何/何时应该使用它。
我看到已经related page on MSDN但这种“改变”它仍不清楚我...
感谢。
最好用一个例子来解释:
for (int ix = 0; ix < 10; ++ix) {
Console.WriteLine(ix); // Break here
}
类型中,其值是简单的布尔或积分值断点对话框的表达式。例如:“ix/2”。当你运行它时,执行将在循环的第一遍中断,并且只有当ix是一个偶数值时。
这不是一个数据断点btw,暗指在另一篇文章。这些在托管代码中不受支持。调试器实际上暂时中断程序执行并每次评估表达式。只有当表达式值发生变化时才停止执行。这可以使你的代码运行一个批次作为一个副作用。
这意味着每次表达式的值改变时,断点都会被激活。
用例是当你想要一个断点时,但只有当有趣的东西在代码中发生了变化。例如,在一个循环中,您可能只想在某些值增加时断开,而不是在循环的每次迭代中断开。
此“已更改”条件断点仅适用于内存(1,2,4或8)的几个字节,其地址和计数您在断点设置中指定。在程序执行过程中,当某些内容改变了这些字节时,程序执行会在进行更改的时候中断。 通常,它用于调试无意识内存/变量更改的情况,当您不知道是谁以及如何完全更改您的内容时。
“bool或整数值”如果我在表达式中有一个复杂的类,让我们说一个(winforms)按钮* btn *和我将更改* btn.Text *将断点打破?或者,如果我有* myString *从“测试”更改为“文本”将被认为是“改变”? – serhio 2009-12-28 09:09:58
没有可以设置断点的代码。实现TextChanged事件。 – 2009-12-28 10:07:17