7

当监视变量(不是属性,只是普通变量)更改以查看更改发生的位置时,是否可以中断执行?我搜索并发现了这个与属性有关的问题,这似乎不是我想要的。

该变量在数千行代码中多次使用,但仅null在发生问题时才更改。我们正在努力追查这个问题。

4

1 回答 1

6
  1. f9在变量周围创建断点 ( )
  2. 右键单击断点的红色圆圈,然后单击“条件...”
  3. 输入变量的名称,然后将单选更改为“已更改”
  4. 断点现在应该有一个+表明它是有条件的

但是:坦率地说,我发现以下更简单,更有效 - 特别是对于字段;假设我们从:

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
        }
    }
}

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

于 2013-02-14T11:53:47.793 回答