Visual Studio 2022 远程调试

发布于:2025-05-14 ⋅ 阅读:(19) ⋅ 点赞:(0)

Visual Studio 2022 远程调试全过程

这篇文章尽可能地精细记录如何使用 Visual Studio 2022 完成 Windows 系统上的远程调试。适用场景包括本地编译,远程运行,两台机器分工合作调试。


一、设备网络通信环境

1.1 确保两台设备通信

  • 本地设备: 安装 Visual Studio 2022
  • 远程设备: 应能运行程序,支持进程启动

1.2 设置同一个网段

本地设备:
在这里插入图片描述
在这里插入图片描述

远程设备:

在这里插入图片描述

1.3 测试 Ping

在本地 CMD 中输入:

ping 192.168.0.20
  • 如果返回 TTL=值表示通信
  • 若返回 超时,确保远程机器已打开 ICMP

在这里插入图片描述


二、设置共享文件夹

2.1 创建文件夹

在远程设备上创建:

D:\Servo\Debug

2.2 启用共享访问

  1. 右键 -> 属性 -> 共享
  2. 指定共享名: Servo
  3. 添加您本地设备上的 Windows 账户(如: Darker
  4. 确认账户并分配权限为 “读写”

在这里插入图片描述
在这里插入图片描述

2.3 测试 UNC 路径访问

在本地设备文件夹输入:

\\192.168.0.20\Servo\Debug

如能正常显示,则设置成功

在这里插入图片描述


三、部署 Remote Debugger (msvsmon)

有两种方式安装 Remote Debugger:

3.1 方式 1: 复制 VS 本地带的 msvsmon.exe

  1. 本地路径:
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Remote Debugger\x64

在这里插入图片描述

  1. 将全部文件夹复制到远程设备,如:
D:\Servo\RemoteDebugger\

在这里插入图片描述

  1. 运行 msvsmon.exe

在这里插入图片描述

  1. 首次启动选择:

    • 配置远程调试
    • 无身份验证 (快捷模式)
    • 确认 Windows 防火墙已放行 TCP 4026

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 方式 2: 从官网下载 Remote Tools 安装(旧版本需要有订阅)

  1. 打开官方下载页面:
    https://learn.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging
    https://visualstudio.microsoft.com/zh-hans/downloads/?cid=learn-onpage-download-cta

  2. 选择系统平台:

    • AMD64 (大部分 Windows 操作系统)
    • x86 或 ARM64 根据需求

在这里插入图片描述

  1. 安装后,运行:
Remote Debugger

在这里插入图片描述

  1. 配置步骤和 msvsmon.exe 相同:

    • 连接类型:Windows 身份验证 / 无身份
    • 防火墙放行端口

四、Visual Studio 配置

4.1 调试模式切换

  1. 项目上方 “运行” 按钮旁边 -> 选择 【远程 Windows 调试器】

在这里插入图片描述

4.2 设置项目属性 -> 调试

项目 设置值
调试器 远程 Windows 调试器
远程命令 \\DESKTOP-IODBVIQ\Servo\Debug\Servo.exe
工作目录 \\DESKTOP-IODBVIQ\Servo\Debug
远程服务器 DESKTOP-IODBVIQ
连接方式 带 Windows 身份验证

在这里插入图片描述

4.3 生成后事件: 自动备份到远程

输入:

if exist "\\DESKTOP-IODBVIQ\Servo\Debug\" (
    xcopy /Y /D "$(OutDir)*.exe" "\\DESKTOP-IODBVIQ\Servo\Debug\"
    xcopy /Y /D "$(OutDir)*.pdb" "\\DESKTOP-IODBVIQ\Servo\Debug\"
)
  • $(OutDir) 是 Debug 输出目录,例如 D:\Project\x64\Debug\
  • 确保目标文件夹存在

在这里插入图片描述

4.4 扩展:支持设置 D:\ 类型的本地运行路径

在 VS2022 中设置远程调试时,也可以指定本地目录如 D:\Servo\Debug 作为运行路径,如下图:

在这里插入图片描述

此时 “远程命令” 和 “工作目录” 可直接设置为本地目录,比如:

远程命令:     D:\Servo\Debug\Servo.exe
工作目录:     D:\Servo\Debug

如果使用本地路径,则不再需要 xcopy 拷贝操作。

是否等价?

当设置了 “远程服务器名” = DESKTOP-IODBVIQ时,这两者路径从效果上是 等价的

  • \\DESKTOP-IODBVIQ\Servo\Debug\Servo.exe
  • D:\Servo\Debug\Servo.exe

两者都指向同一个远程设备上的文件。

但正确理解:

  • \\DESKTOP-IODBVIQ\... 是通过 SMB/文件共享访问
  • D:\...是调试器直接在远程机器上运行路径

若远程 D:\Servo\Debug 已经存在,则 VS 会直接运行本地路径时启动调试,等效。


4.5 扩展:使用项目属性或 .props 文件定义 RemoteServerName

因为 VS2022 的生成后事件不能直接使用调试项 "远程服务器名"的配置,如需要支持多个项目或多环境,可以通过自定义属性来抽象:

1.在项目中添加用户定义属性

通过项目属性或编辑 .vcxproj:

<PropertyGroup>
    <RemoteServerName>DESKTOP-IODBVIQ</RemoteServerName>
</PropertyGroup>
2.在生成后事件中使用
if exist "\\$(RemoteServerName)\Servo\Debug" (
    xcopy /Y /D "$(OutDir)*.exe" "\\$(RemoteServerName)\Servo\Debug\"
    xcopy /Y /D "$(OutDir)*.pdb" "\\$(RemoteServerName)\Servo\Debug\"
)

如此一来,设置不再固定,便于维护和切换环境。


五、启动远程调试

  1. 运行远程设备上 msvsmon.exe
  2. 本地 Visual Studio 点 F5
  3. 如果配置无误,将自动启动远程程序,并可以打断点

在这里插入图片描述


附录: 常见问题检查

问题 原因或解决方案
“Z:\Debug” 不是有效目录 UNC 路径不支持转换成盘符,请使用 \\host\path
xcopy 报错 MSB3073 路径有误,或 target dir 未共享或访问被拒绝
msvsmon 运行后未监听 未配置或防火墙未放行端口 (4026)

结论

远程调试是 VS2022 的高级性能,特别适合开发和运行分离的环境。


网站公告

今日签到

点亮在社区的每一天
去签到