简介
Visual Studio 支持远程调试。即本机调试远程计算机程序。
这在某些场景很实用,其中一个场景为输入框调试时,焦点会转移到VS上,导致无法按预期调试。那么采用远程调试的方式,就能避免这个问题了。
准备远程调试
在测试机器(或虚拟机)上安装 Visual Studio 远程调试工具 (Remote Tools for Visual Studio),版本必须和你开发机上的 VS 对应(比如 VS 2022 要下 VS 2022 Remote Tools)。
本地搜索 msvsmon.exe
,选择对应架构的文件夹,将此文件夹拷贝到测试机(或虚拟机)
比如:
|
|
或者官网下载 Remote Tools 安装包,下载地址:微软官方 Remote Tools
在测试机(或者虚拟机)里打开 msvsmon.exe
程序,首次启动时会有配置弹窗:
然后,在菜单栏-工具-选项,选择无身份验证(测试环境方便)或配置 Windows 身份验证。
部署调试版本程序
在开发机上将 Debug 版本对应的可执行文件(包括 exe、dll、pdb 文件)拷贝到测试机(或者虚拟机),确保能够正常运行。
配置远程调试
方法一
右键单击项目并选择 属性。打开 调试 选项卡。
将“要启动的调试器”更改为“远程 Windows 调试器”。
配置相关属性:
- 远程命令:填入测试机(或虚拟机)可执行文件路径。如
C:\Users\Leo\Desktop\remote_test\VirtualMemory.exe
- 工作目录:填入测试机(或虚拟机)可执行文件所在目录。如:
C:\Users\Leo\Desktop\remote_test
- 远程服务器名称:目标机器名称。
msvsmon.exe
日志显示的名称,如DESKTOP-RNT4TEI
。这里也可以 IP+端口形式连接 - 连接方式:选择不带身份验证的远程访问,与填入测试机(或虚拟机)
msvsmon.exe
一致 - 调试器类型:仅限本机
- 部署目录:自动部署可执行文件(可选)。比如填
C:\Users\Leo\Desktop\remote_test
当你配置了部署目录,可在配置管理器里,将部署勾选上。
之后即可启动调试。将会自动连接并调试测试机(或虚拟机)的程序。
连接成功后,测试机(或虚拟机)msvsmon.exe
会显示对应日志。
[!tip]
还可配置自动部署,修改代码后自动部署到测试机(或虚拟机)进行远程调试。
方法二
通过附加到进程的方式进行调试。
在开发机 VS ,菜单栏-调试-附加到进程,连接类型选“远程(Windows - 无身份验证)”,然后查找,顺利的话,将会显示对应的远程调试目标。
连接成功后,再选择对应进程,附加到该进程上:
之后即可开始调试。
[!tip]
确认模块是否加载:
附加成功后,在 VS - 调试 - 窗口 - 模块 (Modules) 查看对应目标是否已加载。如果可执行文件路径正确,VS 会自动匹配 PDB 并绑定断点。
https://learn.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging?view=vs-2022