使用/滥用条件断点来操作值

时间:2015-06-18 10:02:52

标签: .net visual-studio-2013 visual-studio-debugging

对于临时解决方法,我必须在某行中将User.ID设置为0。类似情况的常用方法是在相应的行设置断点并使用监视来操作值:

User.ID = 0

为了通过自动设置值来简化这一点,我提出了一个条件断点,具有以下条件:

Convert.ToBoolean(User.ID = 0)

由于此表达式的计算结果为false,因此代码执行不会停止,并且副作用User.ID将设置为0.事实证明,此副作用不会发生。我确信这是设计的。 完全相同的代码在手表中按预期工作。我的问题:

  • Visual Studio如何处理条件中的副作用 断点,是否有一些官方文件?
  • 可以欺骗Visual Studio以允许这种副作用吗?
  • 是否有另一种方法可以达到预期的行为(即在调试时在某个点自动设置变量)?

Conditional Breakpoint

1 个答案:

答案 0 :(得分:1)

我的问题似乎有关:Why does the debugger's breakpoint condition allow an assignment-statement as bool-condition?

似乎这个错误(在我看来调试器不应该允许断点条件下的副作用)在VS2013中得到修复。

如果您想要副作用,则必须更改设置:

  • 工具+选项
  • 调试
  • 一般 - > "使用托管兼容模式"复选框

勾选,你应该得到旧的行为。我在2010年,所以我无法测试它。但我相信Hans Passant