无法在WinDbg中加载SOS?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

背景:我是WinDbg的新手,并试图让它第一次运行。我想检查一下从Windows Server 2008(x86)上IIS 7中运行的正在运行的ASP.NET 4站点获取的内存转储,并将其下载到本地计算机。

我安装了调试工具,并首次启动WinDbg,打开故障转储。我去了File | 符号文件路径并将路径设置为“* srv * c:\ symbols * http://msdl.microsoft.com/downloads/symbols*”,并等待所有符号加载。

当试图加载SOS时,我遇到了问题。首先,我尝试了下面的命令...

.loadby sos mscorwks

...并收到回应“无法找到模块'mscorwks'”。

在刷新网页后,我尝试通过执行以下命令来加载mscorwks ...

sxe ld mscorwks.dll
g

...并收到响应“g中没有可运行的调试错误”

我将SOS.dll(从C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319)复制到WinDbg目录中,然后尝试...

.load sos

...并收到错误...

The call to LoadLibrary(sos) failed, Win32 error 0n193
    "%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.

我不太确定如何继续。我只是想加载SOS并挖掘这个转储文件。任何帮助将不胜感激。

Fyi ...我试图用64位版本的Windbg在64位版本的Windows 7上打开转储文件。

提问于
用户回答回答于

CLR运行时DLL被重命名为clr.dll.NET 4.所以为了加载正确版本的SOS,你需要调整你的.loadby命令。即

.loadby sos clr

另外,如果使用的是64位版本,则应该安装32位版本的Windows调试工具,以便调试32位应用程序。它们并排安装,因此在同一台机器上同时安装32位和64位版本没有问题。

用户回答回答于

因此,由于进程没有运行,消息“ Norunnabledebuggees error in 'g'

关于加载正确版本的SOS,根据.NET版本使用以下命令。

.NET 4及更高版本 .loadby sos

.NET 3.5和2 .loadby sos mscorwks

.NET 1.0和1.1 .load clr10 \ sos

扫码关注云+社区