WinForm/C# # Visual Studio 远程调试

wangbaochen · 2021年12月29日 · 123 次阅读

Visual Studio 远程调试

在可以远程对方电脑,并且只有在对方电脑上出现 BUG 时,可以使用远程调试功能

原理

目标机:

负责执行目标程序。安装和运行远程工具(Remote Debugger),等待来自开发机的连接请求。

开发机:

将编译好的程序部署到目标机器上执行。配置 VS 工程,建立与目标机的连接,开始远程调试。

环境要求

目标机必须满足:

Windows 7 以后或者 Windows Server 2008 Service Pack 2 以后。

网络必须满足:

目标机和开发机必须通过网络、工作组、家庭组连接,或者通过网线直连。

安装 Remote Debugger

在你本地的 VS 安装目录下找到 msvsmon.exe,此文件就是 Remote Debugger。

它的位置在:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Remote Debugger\x86\msvsmon.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Remote Debugger\x64\msvsmon.exe

可以共享该目录,在目标机上直接运行 Share Folder 中的 msvsmon.exe 即可。

也可以把 msvsmon.exe 所在的整个目录 Copy 到目标机上。

这里同样需要注意,要与目标机的操作系统位数匹配。

配置 Remote Debugger

这一步还是在目标机上。

所在登陆账户,一定要拥有管理员权限。

打开安装好的 Remote Debugger (msvsmon.exe),首次打开时,会出现配置窗口,提醒配置一些参数。

只需要配置一次,再次打开时,不会弹出该窗口。

如果你不清楚你的网络连接方式,比较保险的做法是把所有框都勾选上。

点击配置远程调试按钮之后,会出现如下窗口,代表 Remote Debugger 正在等待来自开发机的连接。

这里可以点击 工具 > 选项 菜单,做一些额外的参数配置。建议选择无身份验证,防止连接失败

有时可能会由于防火墙或者认证等原因,导致连接不上的问题,最极端的方法是完全关闭它们。虽然官方出于安全考虑,并不建议这么做。

假如你确定网络没有任何风险,那么可以关闭两边机器的防火墙。上面窗口中,也可以选择无认证方式。

最大空闲时间设置为 0 代表永远不会超时,一直处于等待状态。

TCP/IP 端口号这里默认给出的是 4022,你可以更改,但一般无需这样做。

调试

连接类型:选择远程 (无身份验证)
连接目标:目标机 IP:端口号

点击查找,找到目标用户并连接,然后附加到进程

连接到目标机后,选则需要调试的进程,如上图:

连接成功后,目标机会显示,开发机用户。

要调试的 DLL 必须时 DEBUG 模式,否则不能击中断点

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册