调试时如何“运行直到此变量更改”?

问题描述

| 在调试C#时,我经常想知道变量的值何时更改,然后调查程序的状态。 目前,我这样做是这样的: 监视列出有问题的变量。 实际发送垃圾邮件F10(“跳过”的快捷方式),直到看到值更改为止。 但是,所需的F10数量很烦人。 我想这肯定是自动化的。但是我在Microsoft Visual C#Express中找不到此功能,这让我感到惊讶。毕竟,监视列表会自动以亮红色突出显示已更改的值。 我想念什么吗?     

解决方法

        Express版的简单技巧:
private string myValue;
public string MyValue
{
  set
  {
    if (this.myValue != value) Debugger.Break();
    this.myValue = value;
  }
}
    ,        条件断点是您要执行的操作,但似乎在Visual Studio Express中不可用。 在Visual Studio(非Express)中,其工作方式是创建一个条件断点,该断点的表达式等于您的监视值,并以“已更改”作为断点条件。     ,        这是我在Visual Studio中执行的方法。通过按F9或单击最左边的空白来设置断点。然后右键单击出现的红点,然后选择“条件”命令。还有其他选择。 但是,Visual Studio Express中可能不支持此功能。     ,        您可以使用条件断点 看到这个     ,        您可以编写一个if语句来检查更改,并在该if语句中产生一个断点,因此它最初会中断,然后单击resume,它会一直持续到到达此断点为止。     ,        根据某些运行时条件使用Debugger.Break,或右键单击某个断点,然后选择条件断点->已更改 编辑:不知道这在快递     ,         将断点设置在您希望代码暂停的位置 打开“断点”窗口(调试-> Windows->断点) 右键单击断点,然后选择“条件...”。 将条件设置为变量名称,然后选择“已更改”单选按钮。 单击确定,然后按照常规进行调试:)     ,        如果要在某个断点处捕获变量更改,而不是准确捕获更​​改位置,则设置断点,右键单击该断点,然后选择\“ Condition \”。假设您的变量名是X,当前值是A。在条件字段中输入\“ X!= A \”。 现在,仅当X更改为A以外的其他值时,才会命中断点。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...