我是WinDbg的新手,并从64位Windows 2008 Server上的WER ReportQueue文件夹中获取此转储。 我需要检查转储,并希望在我安装了Windows调试工具包的开发人员计算机上执行此操作。 当我尝试加载SOS时,我收到了以前从未见过的错误:
0:035> .loadby sos mscorwks
The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework64\v2.0.50727\sos) failed, Win32 error 126
"The specified module could not be found."
Please check your debugger configuration and/or network access.
我的机器运行的是32位Windows 7,显然没有Framework64文件夹。
我需要一些建议,指出我正确的方向。如果我想在32位计算机上检查64位进程的转储,我需要做什么?有可能这样做吗?
提前非常感谢!
答案 0 :(得分:12)
如果要分析64位进程转储,则需要在64位计算机上运行64位版本的调试器。可以在32位和64位计算机上分析来自32位进程的转储。因此,如果您确定转储是来自64位进程,则需要在64位计算机上进行分析。
答案 1 :(得分:3)
问题不是你可以从32位WinDbg分析64位转储。从WinDbg帮助文件:
如果要分析转储文件,并且转储文件是在Windows XP或更高版本的Windows上制作的,则可以使用32位软件包或x64软件包。 (转储文件是用户模式转储文件还是内核模式转储文件并不重要,转储文件是在基于x86的平台还是基于x64的平台上进行并不重要。)
如果要分析转储文件,并且转储文件是在Windows 2000操作系统上生成的,则应使用32位软件包。 (转储文件是用户模式转储文件还是内核模式转储文件并不重要)
如果您正在执行实时内核模式调试,并且目标计算机运行的是Windows XP或更高版本的Windows,则可以使用32位软件包或x64软件包。 (这种情况适用于基于x86和基于x64的目标。)
如果您正在执行实时内核模式调试,并且目标计算机运行的是Windows 2000,则应使用32位软件包。
如果您正在执行实时用户模式调试,请使用x64包来调试具有64位和32位代码的WOW64。要调试其他目标,请使用32位调试器来调试32位代码。
问题是什么?在这里,您尝试加载64位扩展来分析问题。在32位WinDbg上加载64位扩展是不可能的。那么问题是32位版本的SOS是否支持64位分析,你能否强制WinDbg使用32位SOS?
您可以使用
强制加载特定版本的SOS。按http://msdn.microsoft.com/en-us/library/bb190764.aspx
加载但是我希望32位版本无法分析64位进程,但是还没试过。