在 WinDbg 中调试 devenv.exe 内存转储



我试图看看是什么导致我的Visual Studio 2013实例在编码时一直挂起。我注意到当它挂起时,它在挂起期间在任务管理器中使用了 1-3% 的 CPU,所以我转储了 devenv.exe它在任务管理器中被标记为 32 位进程 (*32)。当我在 32 位版本的 WinDbg 中打开它并运行 .effmach 时,我得到:

0:000> .effmach
Effective machine: x64 (AMD64)

当我尝试加载CLR调试扩展时,我得到:

0:000> .loadby sos clr
The call to LoadLibrary(C:WindowsMicrosoft.NETFrameworkv4.0.30319sos) failed, Win32 error 0n193
    "%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.

只是为了咧嘴笑,我用 WinDbg 64 位打开了转储并尝试了以下操作:

0:000> .effmach
Effective machine: x64 (AMD64)
0:000> .loadby sos clr
0:000> !threads
SOS does not support the current target architecture.

这就像我被夹在岩石和坚硬的地方之间,无法调试为 32 位或 64 位。我的问题是有谁知道我应该使用哪个版本的 WinDbg,32 位或 64 位,以及可以使用哪些扩展来调试 devenv.exe 进程?

我也尝试了psscor4:

0:000> .load c:debuggingextensionspsscor4x86psscor4.dll
0:000> !clrstack
SOS does not support the current target architecture.

WinDbg 版本是 6.3.9600.16384

WindowsSysWOW64中有一个 32 位版本的任务管理器。如果您使用它而不是默认值,您将获得适当的 32 位转储。

最新更新