【发布时间】:2014-05-20 04:51:17
【问题描述】:
我在使用 C# 应用程序时遇到麻烦的问题。为了简化场景,我有一个主 .exe 项目,它引用另一个 C# 库作为直接 DLL 依赖项。此 DLL 在特定位置引发异常,而调试器正在中断这些异常。但是,异常会被处理而不是重新抛出。我在 VS 中的异常对话框被检查为只有调试器在这种类型的用户未处理异常 (InvalidOperationException) 上中断,但它仍在中断。
然而如果我将同一个库链接为项目引用(而不是链接到已编译的 DLL),调试器将不再因此异常而中断。
同样,如果我直接运行 .exe 程序(在调试器之外),我看不到任何证据表明该异常没有按我的预期处理。没有错误,我的日志记录表明预期的控制流。
相关代码已经有一段时间基本没有变化,但我已经重构了我的解决方案和项目;我以前只使用项目引用,所以在我访问 DLL 引用之前可能从未发现过这个问题。
任何人都可以就调试器在这个处理的异常上中断的原因提出其他建议吗?
【问题讨论】:
-
很奇怪。如果删除依赖 dll 的 pdb 会发生什么?
-
无变化;事实上,在这种情况下,PDB 并不存在。 (但我确实尝试了包含 PDB 的相同场景)
-
看看this SO question。
标签: c# visual-studio-2010 visual-studio-debugging