Kev*_*ock 131 windbg .net-4.0 sos
背景:我是WinDbg的新手并试图让它第一次运行.我想检查一下从Windows Server 2008(x86)上的IIS 7中运行的运行的ASP.NET 4站点获取的内存转储,并下载到我的本地计算机.
我安装了调试工具并首次启动了WinDbg,打开了故障转储.我去了File | 符号文件路径并设置路径*srv*c:\symbols*http://msdl.microsoft.com/download/symbols*并等待加载的所有符号.
在尝试加载SOS时,我遇到了问题.首先,我尝试了以下命令......
.loadby sos mscorwks
Run Code Online (Sandbox Code Playgroud)
......并收到了答复Unable to find module 'mscorwks'.
在搜索网页后,我尝试通过执行以下命令来加载mscorwks ...
sxe ld mscorwks.dll
g
Run Code Online (Sandbox Code Playgroud)
...并收到响应"'g'中没有可运行的调试对象错误"
我将SOS.dll(从C:\ Windows\Microsoft.NET\Framework\v4.0.30319)复制到WinDbg目录中,然后尝试...
.load sos
Run Code Online (Sandbox Code Playgroud)
......并收到错误......
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.
Run Code Online (Sandbox Code Playgroud)
我不太清楚如何继续.我只是想加载SOS并挖掘这个转储文件.任何帮助将不胜感激.
Fyi ...我正在尝试使用64位版本的Windbg在64位版本的Windows 7上打开转储文件.
Bri*_*sen 202
CLR运行时dll已clr.dll使用.NET 4 重命名为.因此,为了加载正确版本的SOS,您需要调整.loadby命令.即
.loadby sos clr
Run Code Online (Sandbox Code Playgroud)
此外,如果你是64位,你应该安装32位版本的 Windows调试工具,以便调试32位应用程序.它们并排安装,因此在同一台机器上同时使用32位和64位版本没有问题.
我建议不要复制SOS.dll.SOS需要匹配框架的确切版本,因此只要您使用框架目录加载它.loadby,就可以了.
Her*_*art 17
WinDbg命令'g'表示[继续]
由于您正在打开转储文件,因此无法"继续",它只包含进程内存.
因此,在您的情况下,消息" 'g'中没有可运行的调试对象错误"是合乎逻辑的,因为该进程未运行.
关于加载正确版本的SOS,请使用以下命令,具体取决于.NET版本.
.NET 4及更高版本 .loadby sos
.NET 3.5和2 .loadby sos mscorwks
.NET 1.0和1.1 .load clr10\sos
| 归档时间: |
|
| 查看次数: |
70118 次 |
| 最近记录: |