VS本地調試x64 平臺 “Visual Studio Remote Debugging Monitor 已停止工作”

問題:

之前有一陣子發現Visual Studio 2012 (在2015上也遇到了)的x64平臺不能直接debug,總是報如下錯誤。
這裏寫圖片描述
這裏寫圖片描述

原因分析:

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,找到後我們直接運行它, 如下圖所示:
這裏寫圖片描述

我們直接點擊圖中的“配置遠程調試”按鈕,如下圖所示:
這裏寫圖片描述
這樣子MSVSMON.EXE就自動配置好了TCP/IP端口4020,關於端口,不同版本的VS它們也是不一樣的,並且每個版本都有兩個端口,還拿VS2015爲例,4020端口適用於X86和X64系統,而4021端口僅在Windows X64上使用,以便調試X86程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章