我无法调试 .NET Core 源代码
Posted
技术标签:
【中文标题】我无法调试 .NET Core 源代码【英文标题】:I'm not able to debug .NET Core source code 【发布时间】:2021-04-05 02:56:46 【问题描述】:是的,我知道这个问题不时出现,我在互联网上搜索过答案,但似乎没有任何问题。因此,我准备了详细的解释,并附有屏幕截图,说明我试图通过 .NET Core 源代码跟踪代码执行以及结果如何。
我正在使用 Visual Studio Community 16.8.3,并从模板创建了一个 .NET Core 3.1 Web 应用程序。我更改了 Startup 类中的代码,使其崩溃。
这些是我的调试设置(我不知道天气 .NET Framework 源步进对 .NET Core 项目有什么意义):
让我们运行并遇到异常:
这里我选择只对源代码进行反编译(上图有链接),看看是否可行:
好的,但我只看到代码,无法检查变量和对象值。让我们重新运行一下,看看是否可以在异常发生时通过单击符号服务器来获取代码:
它报错了,所以让我们启用源服务器。
让我们再次运行它,然后遇到异常。
现在它抱怨某种排除(参见符号状态列):
我手动加载所有符号:
在这里我重新运行应用程序,加载了所有符号,但是当异常发生时我仍然无法 F11 进入 .NET Core 源代码:
能够单步调试 .NET Core 源代码我缺少什么?
【问题讨论】:
“启用 .Net Framework 源代码步进”? 我使用的是 .NET Core,而不是 .NET Framework。无论如何,我也尝试了该选项,但一切都保持不变。 这里向您展示如何调试 ASP.NET Core 源代码:levelup.gitconnected.com/… 【参考方案1】:您是否启用了源链接?执行以下操作后,我能够进入 .NET Core 3.1 源代码:
在工具 -> 选项 -> 调试 -> 常规中取消选中“仅启用我的代码”并选中“启用源链接支持”
在工具 -> 选项 -> 调试 -> 符号中激活符号服务器
我从 Microsoft Devblogs 上的 Improving Debug-time Productivity with Source Link 获得此信息。
【讨论】:
【参考方案2】:异常表示Startup
类中缺少公共方法Configure
。应用程序没有正确启动,这就是调试不起作用的原因。
【讨论】:
应用程序在 .NET Core 源代码中遇到异常。我想查看异常发生的点,以检查它发生的上下文。我自己创建了会出现异常的情况,这只是实际系统中可能出现的情况的简化示例。 您可以通过启用 Source Link 支持来进入 .NET Core 源代码(我添加了一个答案以更详细地描述它)。以上是关于我无法调试 .NET Core 源代码的主要内容,如果未能解决你的问题,请参考以下文章
.Net Core 5 项目无法在 Visual Studio 2019 中运行