c# - ClrMD:分析 dotnet 核心应用程序中 .NET 框架进程的转储

标签 c# clrmd

我有一个使用 procdump 创建的 .NET Framework 应用程序转储.我可以创建控制台 .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 控制台应用程序中,我会遇到异常Could not find matching DAC for this runtime

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

最佳答案

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

关于c# - ClrMD:分析 dotnet 核心应用程序中 .NET 框架进程的转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56211531/

相关文章:

c# - 如何使用 ClrMD 正确处理非原始 ClrInstanceField 值?

c# - 流利的 NHibernate : how to map the where clause filter on a ManyToMany

c# - 结构图和引用文献,最佳实践是什么?

c# - 泰历 2558 年至 2015 年

c# - 有什么方法可以用 ClrMD 获取局部变量的值(比如 sosex !mdv)?

windbg - ClrMD 获取内存转储时间

c# - 如何使用 Microsoft.Diagnostics.Runtime 获取有关 StackTrace 中方法的信息?

c# - 使用 ClrMD 加载转储文件时为 "Failure loading DAC: CreateDacInstance failed"

c# - 在 datagridview 内编辑文本框

c# - 以编程方式绑定(bind)到不断变化的 ViewModel