关于Visual Studio:x64上的x86远程调试器服务

关于Visual Studio:x64上的x86远程调试器服务

x86 Remote Debugger Service on x64

是否可以在64位计算机上将x86远程调试器作为服务安装?我需要在会话0进程中将调试器附加到托管代码。该进程运行32位,但是安装的调试器服务为64位,并且不会附加到32位进程。

我尝试使用SC命令创建服务,并且能够启动该服务,并验证它是否在任务管理器进程中运行。但是,当我尝试使用Visual Studio连接到它时,它说未启用远程调试器监视器。当我停止x86服务并启动x64服务时,它能够找到监视器,但仍然出现错误。

当我尝试使用远程调试器时,这是错误:
无法附加到进程。 Visual Studio远程调试监视器(MSVSMON.EXE)的64位版本不能调试32位进程或32位转储。请改用32位版本。

这是我尝试在本地附加时的错误:
此计算机不支持在其他终端服务器会话中附加到进程。尝试对计算机进行远程调试,并在进程的会话中运行Microsoft Visual Studio远程调试监视器。

如果我尝试将32位远程调试器作为应用程序运行,它将无法正常运行,而远程调试器在我的会话中而不是在会话0中运行。


在安装rdbgsetup_x64.exe并通过配置向导后,这可在我的机器上运行:

1
2
3
4
sc stop msvsmon90
sc config msvsmon90 binPath="C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
emote Debugger\x86\msvsmon.exe /service msvsmon90"
sc start msvsmon90

尝试远程调试在64位IIS中以32位运行的网站时,我们遇到了相同的问题。

您也可以这样做:

  • 停止默认的调试服务
    (将x64作为安装程序
    会很聪明和配置
    那个要运行)。
  • 导航到"远程调试器"开始
    菜单文件夹并运行x86调试
    服务。忽略有关的警告
    32位/ 64位。
  • 打开工具->选项窗口
    远程调试器应用程序窗口并制作
    "服务器"中的值的注释
    名称"文本框。
  • 现在,您可以连接视觉工作室
    通过复制"服务器名称"
    值插入"限定词"文本/组合
    附加到进程对话框上的框
    Visual Studio。

与此相关的是,如果您是从Windows 2008/7 / Vista连接到2003年的计算机,并通过以下位置的Connect向MS报告(然后以"外部"关闭),则存在Kerberos身份验证的低级错误。 //connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=508455


我可以确认您确实想做的事。我经常用VS2008远程调试器将32位XP恶化连接到x64 Win2003服务器。


我没有尝试过,但是无论如何这是一个建议:

尝试手动安装x86远程调试器服务。

1
sc create"Remote Debugger" binpath="C:\use\short\filename\in\the\path\x86\msvsmon.exe /service msvsmon90"

两个注意事项:

  • 您需要使用短文件名
    在msvsmon.exe的路径中
    避免必须引用路径
    (因为整个命令需要
    引)
  • 后面必须有一个空格
    " binpath ="(并且
    '='字符)。谁写的
    sc的命令行解析器
    命令应该被诅咒。

然后,您可以使用services.msc控制面板小程序以正确的凭据运行它。

您可能必须停止甚至删除现有的x64远程调试器服务。


1)安装x64版本。这也会安装x86调试器,但不会创建快捷方式。

2)您可以在此处找到用于x86进程调试的可执行文件... C: Program Files Microsoft Visual Studio 14.0 Common7 IDE remote Debugger x86 msvsmon.exe

3)如果需要,将其固定在任务栏上。


我今天遇到了这个问题(64位OS和VS 2019)。我将配置更改为将x64用于项目,将IISExpress更改为使用64位,将平台目标更改为x64。它仍然使用32位调试器并抱怨。最后,当我启用脚本调试时,它开始使用64位调试器。所以我想说所有这些都可以解决问题。


有时会发生此错误,我只是关闭了Visual Studio,然后再次将其打开,一切正常!

vs非常奇怪的行为


在没有安装其他软件的情况下为我工作。我只是复制了VM上的C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
emote Debugger
文件夹,然后从x86文件夹启动了msvsmon.exe。我的来宾和主持人均为x64


推荐阅读