【问题标题】:EF Core CLI Tools prerequisits for attaching the debugger附加调试器的 EF Core CLI 工具先决条件
【发布时间】:2018-07-19 22:56:47
【问题描述】:

我试图从我的 DBContext 调试 OnModelCreated,如下所述:EF Core Add Migration Debugging 通过插入 System.Diagnostics.Debugger.Launch()

然后我运行> dotnet ef migrations list 命令并得到附加调试器的提示。我选择了正在运行的 VS,其中加载了正确的解决方案。

然后我看到了反汇编文件和关于找不到 debugger.cpp 的警告等等。我选择在前面提到的Debugger.Launch() 之后直接设置断点,然后告诉我

断点,不会被命中,因为没有加载任何符号"

嗯 - 模块窗口很可能会对此有所了解。
所以打开模块窗口并寻找我的.dll。 - 就在那里 - 上面有一个小红十字。

右键单击模块:符号加载信息状态:

此模块是由 ngen.exe 工具创建的预编译二进制文件。调试器不会尝试为这些二进制文件加载符号,而是会在 .NET 运行时加载原始 dll/exe 时加载符号。

文件中的符号状态说明:
|姓名 |符号状态 |工艺 |
|数据访问.Migrations.dll |本机调试器跳过了托管模块的加载符号。 | [21808] dotnet.exe |

在我写这篇文章时,VS 似乎试图调试本机代码而不是托管代码。有没有办法解决这个问题或跳入“混合模式调试”?

【问题讨论】:

  • 您现在可以调试您的应用程序吗?任何更新,请随时在这里分享。

标签: debugging visual-studio-2017 entity-framework-core


【解决方案1】:

似乎调试器正在跳过不在 .NET 环境中的文件。 解决方案:检查调试 -> 常规 -> 仅启用我的代码

对于混合模式: 项目名称->属性->调试->调试器类型:

【讨论】:

  • Just My Code 已启用。您显示的形式是 c++。 dotnet (cli) 本身也可能是非托管的,但我要调试的 dll 是 dotnet ef core Migration dll。我无法为我的项目或解决方案设置参数,因为它不是本机代码。
  • @TGlatzer 如果是 C# 项目,在 Property Pages 对话框中,选择 Debug 选项卡,然后选择 Enable native code debugging: docs.microsoft.com/en-us/visualstudio/debugger/…
  • 我很想听从你的建议,但 .NET Core 项目似乎没有那个按钮。
猜你喜欢
  • 2021-08-02
  • 2017-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多