由调试器引起的命中断点

时间:2010-02-22 03:00:16

标签: c# .net visual-studio visual-studio-2008 debugging

有什么方法可以在Visual Studio调试器引起操作时触发断点? 例如,假设我有以下内容(我知道你不应该这样做,只是为了论证而使用它):

public class Test
{
    int _X = -1;
    public int X { 
        get { return ++_X; } //Breakpoint here
        set { _X = value; } 
    }
}

static void Main(string[] args)
{

        Test t = new Test();
        t.X = 1;  //Breakpoint here
        return;
}

如果你在Main中的断点暂停,每次你将鼠标指针悬停在“t.X”上 (假设您启用了以下调试选项 - “启用属性评估和其他隐式函数调用”)或者您在“监视”窗口中评估属性 - 它将增加属性,但属性的“get”访问器中的断点不会被击中在更具体的上下文中重新提问 - 在调试器完成评估时,有没有办法在属性的“get”访问器中点击断点?

2 个答案:

答案 0 :(得分:2)

经过对该主题的一些研究后,我了解了FuncEval,在阅读了很多关于FuncEval的内容后,我被引入了以下文章: SteveJS先生Stop Mid Func Eval, Nested Break States。 在文章中他解释说,从VS2005开始,如果评估是从“Immidiate Window”而不是Watch或“Quick Watch”窗口完成的,那么你可能会遇到由FuncEval引起的断点。所以,在上面的例子中,输入

?t.X
立即窗口中的

导致get访问器上的断点被命中。

答案 1 :(得分:0)

取消选中此选项

调试 - > 一般 - > 跳过属性和操作

还要看看这篇文章