3

我正在尝试使用 WinDbg 调试在 Windows 7/64 位上运行的 .NET 3.5、32 位应用程序。我想使用 psscor2,但我无法加载它。我也无法加载sos。

当我尝试加载 psscor2 时,出现此错误:

> .load psscor2
The call to LoadLibrary(psscor2) failed, Win32 error 0n193
    "%1 ist keine zulässige Win32-Anwendung."
Please check your debugger configuration and/or network access.

当我尝试加载 sos 时,出现此错误:

> .loadby sos mscorwks
Unable to find module 'mscorwks'

我的猜测是 64 位版本的 WinDbg 无法加载 psscor2 和 sos 等 32 位扩展 dll。但是我找不到 32 位版本的 WinDbg 或 64 位版本的 psscor2 的下载。

PS:我已经(某种程度上)解决了这个问题:我在 32 位虚拟机中安装了 Windows 7 SDK,并将 WinDbg 的 32 位版本从那里复制到我的开发 PC。但是必须有一个更简单的方法来做到这一点!

4

1 回答 1

4

如果要调试 32 位应用程序,即使在 64 位 Windows 上,也应使用 32 位版本的 WinDbg 并加载 32 位版本的 SOS/PSSCOR2。

如果您使用 64 位版本,您最终将调试 Wow64 进程,这意味着您必须经过一些额外的循环才能将应用程序作为 32 位进程进行调试。如果出于某种原因必须这样做,您还需要加载 wow64exts 扩展并使用该!sw命令切换到 32 位模式。即使您这样做,在 32 位应用程序中使用 64 位版本也会出现一些问题,因此我建议您使用 32 位版本的 WinDbg。

于 2010-10-18T12:18:03.130 回答