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

Ank*_*nko 21 c# variables debugging watch visual-studio-express

在调试我的C#时,我经常想知道变量的值何时发生变化,然后调查程序的状态.

目前,我这样做:

  1. 观察有问题的变量.
  2. 物理垃圾邮件F10(Step Over的快捷方式),直到我看到值更改.

但是,所需的F10数量很烦人.

我想,这当然是自动化的.但我在我的Microsoft Visual C#Express中找不到这个功能,这让我感到惊讶.毕竟,监视列表自动以亮红色突出显示更改的值.

我错过了什么吗?

Teo*_*gul 22

Express版的简单技巧:

private string myValue;
public string MyValue
{
  set
  {
    if (this.myValue != value) Debugger.Break();
    this.myValue = value;
  }
}
Run Code Online (Sandbox Code Playgroud)


Ben*_*ein 6

条件断点是您所追求的,但它似乎在Visual Studio Express中不可用.

在Visual Studio(非Express)中,它的工作方式是创建一个条件断点,其表达式等于您的监视值,并且"已更改"作为断点条件.

  • 并不是的.我假设OP需要一种_data breakpoint_,只要有任何东西触及给定的内存位置就会触发.这种断点是Visual Studio中不可用的AFAIK.相反,如果数据发生更改且代码位于某个_predefined_位置,则会触发条件断点. (21认同)