Visual Studio代码不在OS X上加载符号

我试图在OS X上使用ASP.NET Core设置web api。我已经正确设置了自己的环境(我认为),并且能够使用终端上的dotnet build和运行我的应用程序,能够从Visual Studio Code开始调试,断点工作正常。 我的问题是,当我试图使用EF核心查询我的Sqlite数据库时收到一个错误。 EF核心在这里并不重要,因为当我调试并试图找出错误时,我没有得到任何堆栈跟踪。 当我跳过失败的代码时,调试控制台会打印:

Exception thrown: 'System.InvalidOperationException' in Microsoft.EntityFrameworkCore.dll
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Diagnostics.StackTrace.dll'. Cannot find or open the symbol file.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Reflection.Metadata.dll'. Cannot find or open the symbol file.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.IO.MemoryMappedFiles.dll'. Cannot find or open the symbol file.
Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.IO.UnmanagedMemoryStream.dll'. Cannot find or open the symbol file.

很多这些Cannot find or open the symbol file. 也在启动时打印。 我已经检查过这些文件在指定的位置,并且不应该有任何读取访问问题(已经用sudo code .开始vs代码,甚至在有问题的文件夹中做了sudo chmod 777 * )。

那么,为什么符号没有加载的任何想法?


在Windows 10虚拟机上运行VS Code的相同问题。

我发现的解决方案是为我的project.json文件的buildOptions部分添加一个"debugType": "portable"设置。

我看起来像这样:

"buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true,
    "debugType": "portable"
}

在VS Code中调试实际上并不是那么糟糕。


我认为你对VSCode无法加载的内容感到困惑。 这并不是说它无法加载DLL。 'Symbol'文件的扩展名为.PDB。 为了调试由DLL生成的错误,调试器需要相应的符号文件,因此如果PDB文件不存在,更改DLL上的权限不会使错误消失。

我刚刚开始在Mac上使用VSCode,并且从我所能看到的情况来看,如果使用Homebrew(这是他们推荐的)安装dotnet核心,则不会获得PDB文件,并且在启动调试器时看到类似的消息。 这并没有阻止我调试我自己的代码,因为我的DLL生成了一个PDB文件。 如果您需要调试dotnet内核本身出错的话,它只会导致问题。

链接地址: http://www.djcxy.com/p/92583.html

上一篇: Visual Studio Code not loading symbols on OS X

下一篇: What triggers Azure Functions to reload the referenced assemblies?