为什么断点的条件未能执行

本文关键字:执行 条件 断点 为什么 | 更新日期: 2023-09-27 17:54:37

我想在短时间内暂时禁用一个断点,所以我用以下条件设置了一个条件断点:

(global::System.DateTime.Now<new global::System.DateTime(2014,03,28,11,0,0))

当这个断点被击中时,弹出一个对话框,说

The condition for a breakpoint failed to execute. The condition was 
'(global::System.DateTime.Now<new
global::System.DateTime(2014,03,28,11,0,0))'. The error returned was
'The runtime has refused to evaluate the expression at this time.'. Click
OK to stop at this breakpoint.

为什么运行时拒绝对表达式求值?

我怎样做才能在不修改已调试的源代码的情况下获得所需的行为?

为什么断点的条件未能执行

从VS2012开始,您必须切换到托管兼容模式,以使用条件断点。为什么(抱歉,没有更多的为什么从MS,因为链接是坏的…我添加了链接到archive.org)和如何描述在这里:

开关- -管理-兼容性-模式-视觉工作室- 2013年

旧的微软链接,现在已关闭

archive.org上的微软原创文章

据我所知这是不可能的。你可以使用HitCount

或在C# code

中使用定时器(根据您的喜好)硬编码
#if DEBUG 
  if(System.Diagnostics.Debugger.IsAttached)
     System.Diagnostics.Debugger.Break();
#endif