监视变量发生更改时暂停执行
本文关键字:暂停 执行 变量 监视 | 更新日期: 2023-09-27 17:59:00
当监视变量(不是属性,只是普通变量)更改以查看更改发生在哪里时,是否可以中断执行?我搜索了一下,发现了这个与房产有关的问题,这似乎不是我想要的。
这个变量在几千行代码中使用了好几次,但只有在出现问题时才会从null
更改。我们正在设法找出那个问题。
- 在变量周围创建断点(f9)
- 右键单击断点的红圈,然后单击"条件…"
- 键入变量的名称,并将单选框更改为"Has changed"
- 断点现在应该有一个
+
来指示它是有条件的
然而:坦率地说,我发现以下方法更简单、更有效——尤其是对于领域;假设我们从开始
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
}
}
}
并将断点放在最内侧的一行;这将绕过设置字段的代码,而不实际更改值。