监视变量更改时暂停执行?

时间:2013-02-14 11:34:54

标签: c# visual-studio-2010 debugging

当监视变量(不是属性,只是普通变量)发生变化时,是否可以中断执行以查看更改发生的位置?我搜索并发现this question与我看来的属性有关。

此变量在几千行代码中多次使用,但只在问题发生时才从null更改。我们正试图追踪这个问题。

1 个答案:

答案 0 :(得分:5)

  1. 围绕变量
  2. 创建断点( f9
  3. 右键单击断点的红色圆圈,然后单击“条件...”
  4. 输入变量名称,并将收音机更改为“已更改”
  5. 断点现在应该有一个+来表示它是有条件的
  6. 但是:坦率地说,我发现以下更简单,更有效 - 特别是对于田地;我们先说:

    string name;
    

    我们将暂时改为

    private string __name;
    string name {
        get { return __name; }
        set { __name = value; }
    }
    

    并在set行放置一个断点。它仍然应该编译,你可以轻松地看到变化。对于更复杂的情况:

    private string __name;
    string name {
        get { return __name; }
        set {
            if(__name != value) {
                __name = value; // a non-trivial change
            }
        }
    }
    

    并将断点放在最内线;这会绕过设置字段而不实际更改值的代码。