是否有一种方法可以将一个手表放在变量上,并且只在该值发生变化时才有Visual Studio中断?

这将使找到棘手的州问题变得容易得多。

这能做到吗?

断点条件仍然需要断点设置,我宁愿设置一个监视表,让Visual Studio在状态更改时设置断点。


当前回答

2019年更新:

现在,针对. net Core 3.0或更高版本的Visual Studio 2019预览2正式支持这一点。当然,您可能不得不考虑使用预览版IDE的潜在风险。我想在不久的将来,这将包含在官方的Visual Studio中。

https://blogs.msdn.microsoft.com/visualstudio/2019/02/12/break-when-value-changes-data-breakpoints-for-net-core-in-visual-studio-2019/

幸运的是,数据断点不再是c++独有的,因为它们现在在Visual Studio 2019预览2中可用于.NET Core(3.0或更高版本)!

其他回答

如果你正在使用WPF,有一个很棒的工具:WPF检查器。 它将自己连接到WPF应用程序,并显示具有所有属性的完整控件树,它允许你(在其他事情中)打破任何属性更改。

但遗憾的是,我没有找到任何工具,可以让你做同样的任何属性或变量。

将变量更改为属性,并在set方法中添加断点。例子:

private bool m_Var = false;
protected bool var
{
    get { 
        return m_var;
    }

    set { 
        m_var = value;
    }
}

可以在非托管代码中使用内存观察点。但不确定这些在托管代码中是否可用。

我记得你用Visual Basic 6.0描述它的方式。在Visual Studio中,到目前为止我发现的唯一方法是指定断点条件。

您可以选择重载变量的=操作符,并且可以在特定条件下将断点放在重载函数内。