ClrMD:在dotnet核心应用程序中分析.NET框架过程的转储

时间:2019-05-19 19:58:31

标签: c# clrmd

我有一个使用procdump创建的.NET framework应用程序转储。我可以创建console .NET framework 4.6.1应用程序,安装ClrMd nuget软件包并编写以下代码以开始一些检​​查:

using(var dt = DataTarget.LoadCrashDump(@"C:\temp\dump.dmp"))
{
    var rt = dt.ClrVersions.First().CreateRuntime();
    Console.WriteLine(rt.ThreadPool.TotalThreads);
}

工作正常。

如果我使用相同的转储执行相同的操作,但是在dotnet core 2.2 console应用程序中,我将遇到异常Could not find matching DAC for this runtime

为什么在第一种情况下有效,但在第二种情况下无效?

1 个答案:

答案 0 :(得分:0)

为正确读取转储,ClrMD加载一个mscordacwks.dll匹配项(或至少紧密匹配)创建该转储的运行时版本。由于dotnet core与.NET Framework不兼容,因此无法加载该dll。