我的工作站是Windows 7 64位。我正在尝试远程调试在Windows 7 64位VM上运行的x86(32位)应用程序。我在VM上安装了rdbgsetup_x64.exe,它将32位和64位版本的msvsmon.exe安装到C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ Remote Debugger中。
如果我在VM上运行64位版本的msvsmon.exe,我可以从我的工作站连接到32位应用程序,但是没有加载任何符号且没有命中断点。
如果我在VM上运行64位版本的msvsmon.exe并尝试远程启动32位应用程序(通过Debug->启动新实例),则会失败,说“无法启动程序。 64位版本的Visual Studio远程调试监视器(MSVSMON.EXE)无法调试32位进程或32位转储。请改用32位版本。“
但是如果我在VM上运行32位版本的msvsmon.exe,当我尝试从我的工作站连接到VM上运行的任何进程时,会出现以下错误:“无法连接到该进程。”发生错误通常表示安装损坏(代码0x80004002)。如果问题仍然存在,请通过Conrol Panel中的“添加或删除程序”修复Visual Studio安装。“如果我尝试从工作站远程启动32位应用程序(使用Debug-> Start New Instance),我会收到同样的错误。
我的问题是如何从运行Win7 / 64的工作站远程调试在Win7 / 64上运行的32位应用程序?
谢谢!
答案 0 :(得分:0)
32位msvsmon应该可以工作。如果没有,可能是某些dll在开发人员计算机和远程测试计算机上的版本不同。尝试将两者更新到最新的Service Pack。描述了类似的问题here
此外,如果您的Visual Studio不支持此方案,您可以始终使用WinDbg(建议问题标题未明确说明'使用Visual Studio')。它支持各种远程调试方案。我经常使用WinDBG调试类似的场景。关于WinDbg在线有很多教程,但高级Windows调试书肯定是最好的。