我可以设置一个断点,当variables在.NET中获得一个特定的值?

我正在使用Visual Studio 2010,我知道这个function在C ++中是可用的。

我需要debugging一些代码,将一个variables更改为几个值。 我想debugging特定情况下的代码,当variables获取特定的值时。 我知道我可以添加if(var == value) ,但有没有什么优雅的方式来做到这一点?

另一个问题,我可以设置一个断点当一个variables一般改变?

当然可以设置一个条件,如一个variables接收一定的值。 这被称为断点条件。 要创build一个,请执行以下操作。

  • 在variables发生变化的地方设置一个断点
  • 右键单击中断点并select“条件”
  • input像“theNewValue == 42”这样的条件

现在只有当你的条件评估为真时,断点才会命中。

你所要求的第二个项目,当variables值由于任何原因而改变时,被称为数据断点。 这些仅适用于C ++代码。 这不是在C#, VB.NET或任何其他托pipe语言的选项。

只要您使用Express以外的Visual Studio版本,则可以使用断点条件在C#中实现此目的。

在“断点条件”对话框的“条件”框中input有效的expression式,例如myLocalVariable> 1

…如果在expression式的值发生变化时想要中断,则select更改。

要进入“ 已更改”选项,请在“ 断点”窗口中右键单击断点,然后select“ 条件…” ,然后查看下面的截图。

已更改断点条件的选项

用F9添加一个断点 – 右键点击它并select"Condition..." – 现在你可以添加一个布尔条件,只有当条件结果为真时,断点才会被打。

这取决于你的断点的范围。 如果variables不是本地的或不是静态的,你将不能够。

要设置断点的条件,右键单击它,你应该得到这个屏幕:

在这里输入图像说明

select条件

您可以使用条件断点。 我知道你的问题是特定于VS2010的,但是请注意,从VS2012开始,你必须切换到托pipe兼容模式,才能在Visual Basic中使用条件断点。 为什么和如何描述在这里:

切换到pipe理兼容模式function于视觉工作室2013

你可以做这两件事情。

  1. 在VS中设置断点。 右键单击边距中的红点,然后select添加条件。 在那里你可以说var==value并select“是真的”。
  2. 你可以用上面的对话框中的“已更改”选项来实现。