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

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

这能做到吗?

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


当前回答

你也可以选择在代码中显式中断:

// Assuming C#
if (condition)
{
    System.Diagnostics.Debugger.Break();
}

从MSDN:

调试器。打破: 如果没有附加调试器,则会附加用户 问他们是否要附上 调试器。如果是,则调试器处于 开始了。如果附加了调试器, 调试器使用用户发出信号 断点事件和调试器 暂停进程的执行 就好像是调试器断点 打击。

不过,这只是一个备用方案。在Visual Studio中设置条件断点(如其他评论中所述)是更好的选择。

其他回答

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

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

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

    set { 
        m_var = value;
    }
}

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

您可能可以巧妙地使用DebugBreak()函数。

你也可以选择在代码中显式中断:

// Assuming C#
if (condition)
{
    System.Diagnostics.Debugger.Break();
}

从MSDN:

调试器。打破: 如果没有附加调试器,则会附加用户 问他们是否要附上 调试器。如果是,则调试器处于 开始了。如果附加了调试器, 调试器使用用户发出信号 断点事件和调试器 暂停进程的执行 就好像是调试器断点 打击。

不过,这只是一个备用方案。在Visual Studio中设置条件断点(如其他评论中所述)是更好的选择。