我正在寻找.NET(尤其是C#,尤其是C#)中的.NET(尤其是C#)来触发调试中断,就像在该点处设置了断点一样,而不必记住在调试器中设置特定的断点,而不影响生产运行时间。
我们的代码需要吞下生产中的异常,因此我们不会破坏链接到我们的客户端应用程序,但是我正在尝试对其进行设置,以便在调试器中运行时弹出此类错误进行分析。 ,否则将被安全地忽略。
我的使用尝试Debug.Assert(false)
并不理想,我认为这样Debug.Fail()
做的方式相同。从理论上讲,它应该不会对生产产生任何影响,并且在调试时确实会成功停止,但是根据设计,就我所知,如果您想忽略该错误,就无法继续执行,就像实际断点一样,就像在生产中吞下错误一样。显然,这也破坏了对变量状态的评估,因为调试器实际上在本机系统代码中停止运行,而不是在我们的系统中停止运行,因此调试帮助有限。(也许我缺少某种重新回到事物中来查看变量的方法,以此类推。)
我希望有类似的东西Debug.Break()
,但它似乎不存在(除非在更高版本的.NET中?),并且Debug
似乎也没有其他方法适用。
更新:虽然ctacke的答案最符合我的需求,但此后我也发现了Debug.Assert()的窍门-在调试器中运行时-暂停调试器,转到调试代码。断言待处理的呼叫(由于在框架代码中处于绿色状态,因此以绿色突出显示),然后单击“跳出”(shift-F11),然后在断言对话框中单击“忽略”。这将使调试器在断言返回时暂停(并且可以继续执行,就好像它没有发生一样,因为它被忽略了)。可能还有其他方法可以做很多相同的事情(点击Retry可以更直接地做到这一点吗?),但是这种方法很直观。