10

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

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

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

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

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

4

8 回答 8

16

在安装 rdbgsetup_x64.exe 并通过配置向导后,这适用于我的机器(TM):

sc stop msvsmon90
sc config msvsmon90 binPath= "C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe /service msvsmon90"
sc start msvsmon90
于 2009-01-15T03:12:37.013 回答
8

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

你也可以这样做:

  • 停止默认的调试服务(它将是 x64,因为安装程序会很聪明并配置它来运行)。
  • 导航到远程调试器开始菜单文件夹并运行 x86 调试服务。忽略关于
    32bit/64bit 的警告。
  • 打开远程调试器应用程序窗口的工具->选项窗口,并
    记下“服务器
    名称”文本框中的值。
  • 现在,您可以通过将“服务器名称”
    值复制到 Visual Studio 的“附加到进程”对话框上的“限定符”文本/组合框中来附加您
    的 Visual Studio。

在相关说明中,如果您从 Windows 2008/7/Vista 连接到 2003 机器,则通过此处的连接报告给 MS(然后作为“外部”关闭),则 Kerberos 身份验证也存在低级错误:https: //connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=508455

于 2009-12-08T12:03:08.987 回答
3

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

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

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

两个注意事项:

  • 您需要在 msvsmon.exe 的路径中使用短文件名,以防止必须引用路径(因为需要引用整个命令)
  • “binpath=”之后必须有一个空格(“=”字符之前不能有空格)。为 sc 命令编写命令行解析器的人应该受到诅咒。

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

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

于 2008-09-16T22:27:00.767 回答
3

我可以确认你想做的事情确实有效。我经常用 VS2008 远程调试器将我的 32 位 xp 优化连接到 x64 win2003 服务器。

于 2009-01-15T03:23:08.707 回答
1

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

2) 你可以在这里找到 x86 进程调试的可执行文件... C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x86\msvsmon.exe

3) 如果需要,请将其固定到任务栏。

于 2017-04-10T14:57:49.973 回答
0

为我工作而无需安装其他软件。我刚刚复制了C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote DebuggerVM 上的文件夹并msvsmon.exe从该x86文件夹启动。我的客人和主人都是x64

于 2014-09-25T11:21:25.740 回答
0

有时会出现这个错误,我只是关闭了Visual Studio并再次打开它,一切正常!

来自vs的非常奇怪的行为

于 2018-01-31T11:35:31.937 回答
0

我今天遇到了这个问题(64 位操作系统和 VS 2019)。我将配置更改为对项目使用 x64,将 IISExpress 更改为使用 64 位,将平台目标更改为 x64。它仍然使用 32 位调试器并抱怨。最后,当我启用脚本调试时,它开始使用 64 位调试器。所以我会说所有的组合都成功了。

于 2019-12-27T00:06:03.617 回答