2013-08-31 25 views
1

我熟悉WinDBG范例。使用WinDBG x64版本审查了很多转储文件。大部分转储文件是.NET 2.0应用程序和psscor2.dll。目前我使用的WinDBG版本是6.12.0002.633。最近,我一直在尝试使用psscor4.dll打开从.NET 4.0应用程序池生成的x64转储IIS转储文件。任何命令我跑的回报, “无法要求信息” 我从C mscordacwks.dll已经在WinDBG中读取.NET 4.0转储文件

  1. :\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319服务器上
  2. 更名为mscordackwks_AMD64_AMD64_4.0.30319 .xxxx.dll。 XXXX文件
  3. 打开的WinDBG在编译的版本相匹配,打开转储文件和路径添加到上面的DLL来exepath
  4. 运行基本的命令!eeversion检查一切都很好,我也得到GC堆未初始化,所以GC模式尚未确定在垃圾收集计划阶段
  5. 接下来,我型!线程和获得,无法要求ThreadStore
  6. 下一页!线程池,我去,无法要求ThreadpoolMgr信息

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

任何帮助/指导,非常感谢

+1

转储中CLR的确切版本是什么? SOS命令是否有效? –

+0

4.0.30319.17929。没有SOS命令给出相同的错误 – G33kKahuna

回答

2

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

+0

谢谢史蒂夫。我想你是对的。我终于通过从服务器上下载CLR.dll获得了sos的工作。现在,我可以运行SOS命令,但psscor4失败 – G33kKahuna

+0

我有sosex4,我也不断收到失败。我喜欢索西的深度。你有工作吗? .NET 4.5的任何特殊步骤? – G33kKahuna

+0

Sosex适用于.NET 4.5。如果你遇到问题,请在线下给我帮忙。 –

1

我在过去发现,有你需要有一个以调试.NET的正确版本的DLL 3。

sos.dll 的Mscorwks.dll mscordacwks.dll

这里是如何我通常去获得这些dll的http://sjbdeveloper.blogspot.com.au/,虽然听起来好像你正在使用基于服务器的应用程序,这意味着你可能只是抓住他们从你的生产箱中,假设你有权访问它,或者如果你没有,可以选择一个分段框。

+0

只是想指出,您的链接是用于.NET v2.0,并且您只需要2 mscorwks.dll和mscordacwks.dll但是,它似乎不同于v4.0,没有mscorwks。 DLL。它被替换为clr.dll。另外,sos.dll对于两个版本都不是强制性的 – G33kKahuna