1

我熟悉 WinDBG 范例。一直在使用 WinDBG x64 版本查看大量转储文件。大多数转储文件是 .NET 2.0 应用程序和 psscor2.dll。我使用的当前 WinDBG 版本是 6.12.0002.633。最近,我一直在尝试使用 psscor4.dll 打开从 .NET 4.0 应用程序池生成的 x64 转储 IIS 转储文件。我运行的任何命令都会返回“无法请求信息”

  1. 我有来自服务器上的 c:\Windows\Microsoft.NET\Framework64\v4.0.30319 的 mscordacwks.dll
  2. 重命名为 mscordackwks_AMD64_AMD64_4.0.30319.xxxx.dll。xxxx 匹配文件中的编译版本
  3. 打开WinDBG,打开dump文件,将上述DLL的路径添加到exepath
  4. 运行基本命令 !eeversion 以检查一切正常,我得到GC Heap 未初始化,因此尚未确定 GC 模式 在垃圾收集的计划阶段
  5. 接下来我输入 !threads 并获取,无法请求 ThreadStore
  6. Next !threadpool 我得到了,无法请求 ThreadpoolMgr 信息

我用这些错误消息做了一些基本的谷歌搜索,它们都指向没有正确的 mscordacwks.dll 或在 WinDBG x64 中打开 x86 文件或在 WinDBG x86 中打开 x64 文件。听起来与我无关

非常感谢任何帮助/指导

4

2 回答 2

2

内部版本号 4.0.30319.17929 是 .NET 4.5 内部版本号。PSSCOR4 不会调试 4.5。您需要使用适用于所有 .NET 2.0-4.5 版本的 4.0 SOS 和/或 SOSEX。

于 2013-09-02T21:03:40.440 回答
1

I have found in the past that there are 3 dlls you need to have the correct version of for debugging .Net.

sos.dll mscorwks.dll mscordacwks.dll

here's how I usually go about getting these dll's http://sjbdeveloper.blogspot.com.au/, although it sounds as though you are using a server based application which means you could possibly just grab them from your production box, assuming you have access to it, or a staging box if you don't.

于 2013-09-02T01:56:16.147 回答