Windbg:psscor4不起作用

时间:2013-09-12 08:37:31

标签: .net windbg sos

我搜索并尝试了很多东西,但无法让psscor4正常工作。

当我调用!threads 时,我总是得到

  

无法请求ThreadStore

我检查的内容如下:

  • 我有一个为X86平台编译的.NET 4应用程序
  • 我正在使用Windbg版本6.2.9200.16384,X86版本
  • 我正在使用Microsoft的当前psscor4并正确加载。我正在加载X86版本,所以应该没问题
  • 符号从MS Symbol服务器加载(命令 .symfix + ,然后 .reload
  • .cordll 显示以下内容:

      

    CLR DLL状态:已加载的DLL C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ mscordacwks.dll

  •   
  当我尝试将SOS用于 .loadby sos clr

时也会发生同样的情况。

有人有想法吗?

2 个答案:

答案 0 :(得分:6)

问题是你正在调试.NET 4.5。 PSSCOR4不适用于.NET 4.5。我还怀疑你在调试机器上运行.NET 4.0,这会导致你的SOS无法运行。为了调试.NET 4.5,您需要.NET 4.5 SOS和/或SOSEX(适用于所有版本的.NET 2.0 +)。

答案 1 :(得分:1)

我发现这个问题发生在:

  1. 你正在针对进程的.NET框架运行错误版本的扩展(!eeversion) - 正如Steve Johnson在这里所提到的那样。要修复,请验证该进程正在使用的.NET版本(!eeversion)并下载相应的正确版本和扩展的位数。
  2. OR

    1. 您没有针对进程的内存转储使用正确版本的SOS - 即您的SOS版本与转储机器上的SOS版本不同。为了对此进行测试,请对.chain的结果进行comapre,并查看SOS版本是否相同。如果不是,请确保WinDbg中的符号搜索路径设置正确,然后运行.symfix,然后运行.reload
    2. 符号搜索路径应设置为:

      SRV*C:\SYMBOLS\PUBLIC*http://referencesource.microsoft.com/symbols;SRV*C:\SYMBOLS\PUBLIC*http://msdl.microsoft.com/download/symbols

      您还可以尝试在John Robbins的博客上发布的解决方案:http://wintellect.com/blogs/jrobbins/automatically-load-the-right-sos-for-the-minidump

      请注意,我能够让他的解决方案仅适用于WinDbg版本6.2+ - 版本6.12及以下版本无效。

      HTH