在 dotnet 6 中调试 C# 项目时无法加载 Pdb 文件

问题描述 投票:0回答:1

正如标题所述,我在调试 dotnet 6 中的任何 C# 项目时遇到了麻烦。照常运行该项目工作正常,但 JetBrains Rider 的“调试输出”表示框架本身的某些 pdb 文件无法加载。

我最初尝试使用我常用的 IDE JetBrains Rider 进行调试,直到昨天它都工作正常。虽然我的程序(一个 aspnet 6 应用程序)没有输出任何错误,但“调试输出”显示以下内容:

Loaded Assembly '/home/main/.dotnet/shared/Microsoft.NETCore.App/6.0.21/System.Net.Security.dll'
Loading module /home/main/.dotnet/shared/Microsoft.NETCore.App/6.0.21/System.Net.Security.dll in application domain 1:clrhost
Pdb file for assembly /home/main/.dotnet/shared/Microsoft.NETCore.App/6.0.21/System.Net.Security.dll was not found or failed to read
Loaded Assembly '/home/main/.dotnet/shared/Microsoft.NETCore.App/6.0.21/System.Security.Cryptography.X509Certificates.dll'
Loading module /home/main/.dotnet/shared/Microsoft.NETCore.App/6.0.21/System.Security.Cryptography.X509Certificates.dll in application domain 1:clrhost
Pdb file for assembly /home/main/.dotnet/shared/Microsoft.NETCore.App/6.0.21/System.Security.Cryptography.X509Certificates.dll was not found or failed to read

...等等,持续几百行左右。

我尝试调试的所有项目都是这种情况,包括(但不限于)dotnet 6和7中完全未触及的控制台应用程序。在我最初尝试调试的项目中,调试会话在通过后就关闭了当我向 aspnet 控制器发出请求时。

我尝试在 Rider 中禁用“启用外部源调试”(这似乎相当于在 VS 中启用“仅我的代码”),但这没有任何效果。

然后我尝试了“dotnet run --debug”命令,该命令没有显示任何“调试输出”(可以在 Rider 中看到),尽管在我向 api 发出请求后程序仍然停止。

我得到了与我之前在 VS Code 中提到的类似的调试输出消息,我认为这证实了我的 dotnet 安装已损坏。为了重新安装它,我删除了 /usr/share/dotnet 和 ~/.dotnet 目录。然后,我运行 dotnet-install.sh 脚本两次,首先使用参数

--channel 6.0 --runtime aspnetcore
,然后仅使用
--channel 6.0

重新安装后,我仍然得到与以前相同的结果。我搜索了互联网,甚至转向 chat-gpt 寻求拯救,但最终,我仍然处于第一步。

谢谢您的帮助!

P.S:这似乎并不重要,因为错误在 dotnet 7 中仍然存在,但我使用的 dotnet sdk 版本是 6.0.413,运行时版本是 6.0.21。

编辑 1:我还尝试以 root 身份调试 Hello world 应用程序,但这也不起作用,这意味着问题很可能不是由于权限不足造成的。

c# linux .net-core sdk pdb-files
1个回答
0
投票

调试一直有效,调试输出错误消息出现在我测试的所有 Linux 和 Mac OS 设备上。

问题是错误的 SQL 连接字符串(传递到 ef core)导致程序崩溃,没有错误消息,并且调试器没有中断执行。

© www.soinside.com 2019 - 2024. All rights reserved.