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