Mic*_*elD 91 .net c# debugging .net-3.5 visual-studio-2008
在工具/异常中,我设置了调试器在抛出异常时停止的选项.是否被抓住.
如何排除该规则的例外?在我的代码中的某处有一个被捕获的异常,它是程序逻辑的一部分.所以我显然不希望该异常在每次命中时停止调试器.
示例:我想忽略第344行的nullreference异常(捕获).我想停止所有其他例外
Shi*_*mmy 64
DebuggerHidden
是你的朋友!
公共语言运行库不向此属性附加语义.它供源代码调试器使用.例如,Visual Studio 2005调试器不会在标有此属性的方法中停止,并且不允许在方法中设置断点.Visual Studio 2005调试器识别的其他调试器属性是DebuggerNonUserCodeAttribute和DebuggerStepThroughAttribute.
在VS2010上测试过,效果很好.
虽然DebuggerStepThrough
似乎也适用于某些特定的调试器版本,但DebuggerHidden
似乎适用于基于对两个答案的注释的更广泛的情况.
请注意,这两个选项当前不适用于迭代器块方法或async/await方法.这可以在以后的Visual Studio更新中修复.
小智 40
如果我没记错的话,你可以DebuggerStepThrough
在包含代码的方法上使用一个属性,你不需要触发异常.我想你可以隔离在方法中触发烦人异常的代码并用属性装饰它.
Val*_*oye 14
DebuggerStepThrough是用于防止调试器在有try/catch的方法中中断的方法.
但只有在Visual Studio的调试选项的常规设置(菜单工具/选项,节点调试/常规)中未取消选中"仅启用我的代码(仅管理)"选项时,它才有效...
有关该属性的更多信息,请访问http://abhijitjana.net/2010/09/22/tips-on-debugging-using-debuggerstepthrough-attribute/
DebuggerHidden将简单地阻止调试器显示抛出异常的方法.相反,它将显示堆栈上没有标记该属性的第一个方法...
bhh*_*bhh 12
DebuggerNonUserCode
默认情况下,在Visual Studio 2015 中,其他答案(以及其他属性)中指定的属性不再以相同的方式工作.与旧版本的VS不同,调试器将在具有这些属性的方法市场中的异常中断.要关闭改变其行为的性能增强,您需要更改注册表设置:
reg add HKCU\Software\Microsoft\VisualStudio\14.0_Config\Debugger\Engine /v AlwaysEnableExceptionCallbacksOutsideMyCode /t REG_DWORD /d 1
Run Code Online (Sandbox Code Playgroud)
更多信息可以在visual studio博客上找到.
(这应该是对最佳答案的评论,但我没有足够的代表)
归档时间: |
|
查看次数: |
27663 次 |
最近记录: |