VS本地调试x64 平台 “Visual Studio Remote Debugging Monitor 已停止工作”

时间:2021-01-09 23:43:04

问题:

之前有一阵子发现Visual Studio 2012 (在2015上也遇到了)的x64平台不能直接debug,总是报如下错误。
VS本地调试x64 平台 “Visual Studio Remote Debugging Monitor 已停止工作”
VS本地调试x64 平台 “Visual Studio Remote Debugging Monitor 已停止工作”

原因分析:

Visual studio自身是32位(X86)程序,如果想要调试X64的程序,必须通过一个远程调试器MSVSMON.EXE来进行调试,但是这个MSVSMON.EXE需要监听一个TCP/IP端口才能够接收从 Visual Studio 发送的数据。

如果我们安装了杀毒软件或Astrill*软件,这个端口可能会被杀软屏蔽,从而导致远程调试器MSVSMON.EXE无法与VS取得通信。

几种解决方法:

1、将平台改为x86,就用不到远程调试机制。当然调用64位库的此种办法无法解决。
2、查看一下是否安装了Astrill SVN等类似软件,卸载。但如果Astrill SVN 和 VS2012 都需要,Astrill SVN官方回复解决办法:
There could be a conflict of resources with our OpenWeb LSP features (proxy configurations).
Please uninstall Astrill app then restart the computer and reinstall using the version on this link: https://www.astrill4u.com/downloads/astrill-setup-win.exe

3、在命令提示符那里打入如下命令执行,重启电脑后即可

netsh winsock reset catalog
netsh int ip reset reset.log hit

4、配置Visual Studio 计算机与远程调试器 之间的防火墙
其实也不用麻烦,远程调试器能够自动配置Windows 防火墙,我们只需要在VS的安装目录下找到MSVSMON.EXE打开就可以了,我用的是VS2015,目录为C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x86\MSVSMON.EXE,找到后我们直接运行它, 如下图所示:
VS本地调试x64 平台 “Visual Studio Remote Debugging Monitor 已停止工作”

我们直接点击图中的“配置远程调试”按钮,如下图所示:
VS本地调试x64 平台 “Visual Studio Remote Debugging Monitor 已停止工作”
这样子MSVSMON.EXE就自动配置好了TCP/IP端口4020,关于端口,不同版本的VS它们也是不一样的,并且每个版本都有两个端口,还拿VS2015为例,4020端口适用于X86和X64系统,而4021端口仅在Windows X64上使用,以便调试X86程序。