首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法在WinDbg中加载SOS

无法在WinDbg中加载SOS
EN

Stack Overflow用户
提问于 2010-12-07 13:28:48
回答 4查看 75.5K关注 0票数 133

背景:我是WinDbg的新手,并且第一次尝试让它运行起来。我想检查从Windows Server2008 (x86)上的IIS7中运行的ASP.NET 4站点获取并下载到我的本地计算机上的内存转储。

我第一次安装了debugging tools并启动了WinDbg,打开了崩溃转储。我转到文件|符号文件路径,将路径设置为*srv*c:\symbols*http://msdl.microsoft.com/download/symbols*,并等待所有符号加载。

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

.loadby sos mscorwks

...and收到了响应Unable to find module 'mscorwks'

在搜索web之后,我尝试通过执行以下命令来加载mscorwks ...

sxe ld mscorwks.dll
g

...and收到响应"No runnable debuggees error in 'g'“

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

.load sos

...and收到错误...

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并搜索这个转储文件。任何帮助都将不胜感激。

仅供参考...我正尝试在64位版本的Windows 7和64位版本的Windbg上打开转储文件。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-07 13:31:26

在.NET 4中将CLR运行时dll重命名为clr.dll。因此,为了加载正确版本的.NET,您需要调整您的.loadby命令。也就是说。

.loadby sos clr

此外,如果你使用的是64位,你也应该安装32位版本的Debugging Tools for Windows,以便调试32位应用程序。它们是并排安装的,所以在同一台机器上同时安装32位和64位版本是没有问题的。

我建议不要复制SOS.dll。SOS需要与框架的确切版本相匹配,所以只要您使用.loadby从框架目录加载它,就一切就绪。

票数 206
EN

Stack Overflow用户

发布于 2014-07-29 19:21:31

WinDbg命令'g‘表示继续

因为你正在打开一个转储文件,所以没有办法“继续”,它只包含进程内存。

因此,消息“No runnable debuggees error in 'g‘”在您的情况下是合乎逻辑的,因为进程没有运行。

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

.NET 4和更高版本的 .loadby sos

.NET 3.5和2个 .loadby sos mscorwks

.NET 1.0和1.1 .load clr10\sos

票数 18
EN

Stack Overflow用户

发布于 2017-05-10 18:48:51

上面的答案需要改进,因为随着时间的推移,事情变得更容易处理sos加载。

JOHN ROBBINS在它周围有很好的article,看到微软的符号服务器被配置在符号文件路径中并运行!analyze -v on windbg提示,这将做的技巧它将下载相关的article文件。为了验证,在提示符后运行.chain,您将看到已加载的dll。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4373683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档