【发布时间】:2020-02-21 08:53:55
【问题描述】:
我正在使用csc.exe 编译一个项目,其中/analyzer: 标志指向ErrorProne.Net.CoreAnalyzers.dll 和ErrorProne.Net.Core.dll 的路径,它们是从我的库here 的克隆中构建的。
但是,我看到了几条类似这样的错误消息:
"警告 CS8032: 分析器实例 ErrorProne.NET.AsyncAnalyzers.ConcurrentCollectionAnalyzer 不能 创建自 C:\Repos\RoslynExample\RoslynExample\ErrorProne.Net.CoreAnalyzers.dll : 调用的目标抛出了异常。”
"警告 CS8032: 分析器实例 ErrorProne.NET.AsyncAnalyzers.AddConfigureAwaitAnalyzer 不能 创建自 C:\Repos\RoslynExample\RoslynExample\ErrorProne.Net.CoreAnalyzers.dll : 调用的目标抛出了异常。”
等等。
我想获得更多调试信息,以便确切知道这些错误何时何地抛出,以及它们的内部异常。到目前为止,这些错误消息本身是没有用的。
重要的是我能够将堆栈跟踪(尤其是内部异常)打印到控制台,或将其写入文件。
如何获取堆栈跟踪的副本?
更新:
我通过以下方法找出了这些错误的原因:1) 创建一个控制台应用程序,该应用程序运行从我的 Error.Net 源代码的克隆构建的分析器,2) 禁用 Just My Code,以及 3) 中断所有异常。虽然很高兴最终找出问题所在,但它仍然没有回答我最初的问题:我怎样才能通过运行csc.exe 来访问内部异常(以便稍后显示它们)?
【问题讨论】:
-
您是否尝试将调试器附加到 csc?
-
也许您可以在分析器代码中添加 AppDomain.FirstChanceException 事件并调查异常(记录或显示它们)?但请注意,实现事件处理程序可能会导致堆栈溢出,因此请查看本网站上的实现示例。