监视变量发生更改时暂停执行

本文关键字:暂停 执行 变量 监视 | 更新日期: 2023-09-27 17:59:00

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

这个变量在几千行代码中使用了好几次,但只有在出现问题时才会从null更改。我们正在设法找出那个问题。

监视变量发生更改时暂停执行

  1. 在变量周围创建断点(f9
  2. 右键单击断点的红圈,然后单击"条件…"
  3. 键入变量的名称,并将单选框更改为"Has changed"
  4. 断点现在应该有一个+来指示它是有条件的

然而:坦率地说,我发现以下方法更简单、更有效——尤其是对于领域;假设我们从开始

string name;

我们暂时将其更改为:

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

并且只在CCD_ 3线上设置一个断点。它仍然应该是可编译的,并且您可以很容易地看到更改。对于更复杂的情况:

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

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