【问题标题】:How can I tell if my assert was hit while the debugger is requesting a value?当调试器请求一个值时,如何判断我的断言是否被命中?
【发布时间】:2021-03-24 11:35:42
【问题描述】:

我有一个自定义的TraceListener,它应该替换 DefaultTraceListener,这样我就可以做一些事情,比如自定义当用户点击 Debug.Assert 时显示的对话框。

当我的应用程序运行不正常时,我会附加调试器并尝试查询属性以查看其值。有时这些属性会触发 Debug.Assert。

如果断言在我暂停代码时发生并且我正在使用调试器查看它,我想完全忽略断言并继续前进。如果在代码运行时发生断言,我希望弹出自定义窗口。

当应用程序被调试器暂停时,有什么方法可以检测到我正在运行代码?

【问题讨论】:

    标签: c# debugging tracelistener


    【解决方案1】:

    我暂时使用Debugger.IsAttached 解决了这个问题。如果是真的,那么附加了一个调试器,我禁用了自定义对话框,然后回退到DefaultTraceListener.Fail。这并不理想,因为这意味着我的自定义对话框仅在没有附加调试器时显示。但这意味着我的用户会在我希望他们看到的情况下看到它(在没有调试器的情况下运行调试模式),我想这已经足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 2011-11-17
      • 2013-01-15
      • 1970-01-01
      • 2019-03-20
      • 2011-10-12
      • 1970-01-01
      相关资源
      最近更新 更多