我正在尝试调试一个问题,如果我可以在属性的 getter 中设置一个断点,这将非常有帮助,但是我不需要在每次从我的 UI 中的某个按钮的 CanExecute 调用中调用它时都中断它。我的想法是我可以简单地在不包含该字符串的调用堆栈上设置断点,但这似乎不起作用。我能想到的最好的解释方法是使用设置的图像和被击中的断点的输出。
正如您在图像中看到的,断点的条件设置在被命中时直接输出,并且在输出中您可以看到它被命中了几次.get(): true
- 正确。但是,当它拍摄此屏幕截图时,它被击中,条件为假,如输出所示。当断点被错误地命中时,程序停止了。
我做错了什么 - 这可能吗?在我看来就像 VS2015 中的一个错误,输出可以正确评估布尔值,为什么断点条件不能这样做?
编辑,以注释图像以防它在某个时候丢失。我在一个简单地返回基础字段的属性的 get 方法中有一个断点。断点设置表明断点上有一个条件来定义断点,这样它应该只在表达式!Environment.StackTrace.Contains("CanExecute")
返回真时才被命中,即只有在堆栈跟踪不包含“CanExecute”字符串时才中断。断点设置的 Action 部分仅使用 . 输出函数名称和条件表达式$FUNCTION: {!Environment.StackTrace.Contains("CanExecute")}
。该操作设置为不继续执行。