我正在尝试使用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,并将32位版本的WinDbg从那里复制到我的开发PC。但必须有一种更简单的方法来做到这一点!答案 0 :(得分:4)
如果要调试32位应用程序,则应使用32位版本的WinDbg并加载32位版本的SOS / PSSCOR2,即使您使用的是64位Windows。
如果您使用64位版本,您将最终调试Wow64进程,这意味着您必须通过一些额外的循环才能将应用程序调试为32位进程。如果由于某种原因必须执行此操作,则还需要加载wow64exts扩展并使用!sw
命令切换到32位模式。即使你这样做,使用64位版本与32位应用程序有一些问题,所以我建议你使用32位版本的WinDbg。