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

标签 .net visual-studio-2013 windbg

我正在尝试查看是什么导致我的 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:\Windows\Microsoft.NET\Framework\v4.0.30319\sos) 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:\debugging\extensions\psscor4\x86\psscor4.dll
0:000> !clrstack
SOS does not support the current target architecture.

WinDbg版本是6.3.9600.16384

最佳答案

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

关于.net - 在 WinDbg 中调试 devenv.exe 内存转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27866714/

相关文章:

python - 在 windbg 中调试 python 转储文件

.net - asp.net mvc 中的链接安全修整

.net - Right$(string, 3) 的含义

c# - 从 C# 中的接口(interface)创建对象

c# - 缺少节点导致空异常导致 linq to xml 崩溃

visual-studio-2010 - 尝试在 Visual Studio 中调试 XSLT 时出现 System.Xml.Xsl.CompiledQuery.Query.staticData 错误

c++ - 调试 Win32 应用程序挂起

visual-studio - 为什么在 Visual Studio 中连续的 int 数据类型变量位于 12 字节偏移处?

使用 C99 编译问题是否在每个 if 周围都有一个范围?

windbg:如何查找已加载模块占用的大小