ClrMD:在.NET Core应用程序中分析.NET框架进程转储

3

我有一个使用procdump创建的.NET框架应用程序的转储。我可以创建控制台.NET框架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控制台应用程序中使用相同的转储文件并执行相同的操作,我会遇到异常找不到此运行时的匹配DAC

为什么第一种情况可以工作而第二种情况不能?

1个回答

0
为了正确读取转储文件,ClrMD需要加载一个与转储文件所在的运行时版本匹配(或至少接近匹配)的mscordacwks.dll。由于dotnet core不兼容.NET Framework,因此无法加载此dll。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接