在 Visual Studio 中远程调试 C++ 项目
若要调试其他计算机上的 Visual Studio 应用程序,请在将要部署应用的计算机上安装和运行远程工具,将项目配置为从 Visual Studio 连接到远程计算机,然后部署和运行应用。
如需详细了解如何远程调试通用 Windows 应用 (UWP),请参阅调试已安装的应用包。
要求
Windows 7 和更高版本以及从 Windows Server 2008 Service Pack 2 开始的 Windows Server 版本支持远程调试器。 有关要求的完整列表,请参阅要求。
注意
不支持在通过代理连接的两台计算机之间进行调试。 不建议通过高延迟或低带宽连接(如拨号 Internet)或跨国家/地区的 Internet 进行调试,否则可能会导致调试失败或速度过慢。
下载和安装远程工具
在要调试的远程设备或服务器上(而不是 Visual Studio 计算机上),请从下表中的链接下载并安装正确的远程工具版本。
- 下载适合 Visual Studio 版本的最新远程工具。 最新的远程工具版本与早期的 Visual Studio 版本兼容,但早期的远程工具版本与后来的 Visual Studio 版本不兼容。 (例如,如果使用的是 Visual Studio 2019,请下载 Visual Studio 2019 远程工具的最新更新。在这种情况下,请不要下载 Visual Studio 2022 远程工具。)
- 下载与要安装远程工具的计算机具有相同体系结构的远程工具。 例如,如果要在运行 64 位操作系统的远程计算机上调试 32 位应用,请安装 64 位远程工具。
- 如果要在 ARM64 设备上远程调试 ARM64EC 应用程序,请安装 ARM64 远程工具,然后启动随这些工具一起安装的 x64 远程调试器。 可在以下位置找到:Program Files (x86)\Microsoft Visual Studio<version>\Common7\IDE\Remote Debugger\x64。
版本 | 链接 | 说明 |
---|---|---|
Visual Studio 2022 | 远程工具 | 兼容所有 Visual Studio 2022 版本。 下载与设备操作系统(x86、x64 (AMD64) 或 ARM64)匹配的版本。 在较旧版本的 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2019 | 远程工具 | Visual Studio 2019 的远程工具可从 My.VisualStudio.com 获取。 如果出现提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用 Visual Studio 订阅 ID 登录。 下载与设备操作系统(x86、x64 (AMD64) 或 ARM64)匹配的版本。 在较旧版本的 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2017 | 远程工具 | Visual Studio 2017 的远程工具可从 My.VisualStudio.com 获取。 如果出现提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用 Visual Studio 订阅 ID 登录。 下载与设备操作系统(x86、x64 (AMD64) 或 ARM64)匹配的版本。 在 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2015 | 远程工具 | Visual Studio 2015 的远程工具可从 My.VisualStudio.com 获取。 如果出现提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用 Visual Studio 订阅 ID 登录。 在 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2013 | 远程工具 | Visual Studio 2013 文档中的下载页面 |
Visual Studio 2012 | 远程工具 | Visual Studio 2012 文档中的下载页面 |
Version | 链接 | 说明 |
---|---|---|
Visual Studio 2019 | 远程工具 | 兼容所有 Visual Studio 2019 版本。 下载与设备操作系统(x86、x64 (AMD64) 或 ARM64)匹配的版本。 在 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 有关最新版远程工具的信息,请打开 Visual Studio 2022 文档。 |
Visual Studio 2017 | 远程工具 | 兼容所有 Visual Studio 2017 版本。 下载与设备操作系统(x86、x64 (AMD64) 或 ARM64)匹配的版本。 在 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2015 | 远程工具 | Visual Studio 2015 的远程工具可从 My.VisualStudio.com 获取。 如果出现提示,请加入免费的 Visual Studio Dev Essentials 计划,或使用 Visual Studio 订阅 ID 登录。 在 Windows 服务器上,请参阅取消阻止文件下载,获取有关下载远程工具的帮助。 |
Visual Studio 2013 | 远程工具 | Visual Studio 2013 文档中的下载页面 |
Visual Studio 2012 | 远程工具 | Visual Studio 2012 文档中的下载页面 |
可以通过将 msvsmon.exe 复制到远程计算机,而不是安装远程工具来运行远程调试器。 但是,远程调试器配置向导 (rdbgwiz.exe) 仅在安装远程工具时才可用。 如果要将远程调试器作为服务运行,则可能需要使用向导进行配置。 有关详细信息,请参阅(可选)将远程调试器配置为服务。
注意
- 若要在 ARM 设备上调试 Windows 10 或更高版本应用,请使用 ARM64,它可用于最新版本的远程工具。
- 若要在 Windows RT 设备上调试 Windows 10 应用,请使用 ARM,它仅在 Visual Studio 2015 远程工具下载中可用。
提示
在某些情况下,从文件共享运行远程调试器可能是最有效的方法。 有关详细信息,请参阅从文件共享运行远程调试器。
设置远程调试器
在远程计算机上,从“开始”菜单中查找并启动“远程调试器” 。
如果你没有远程计算机的管理权限,请右键单击“远程调试器”应用,然后选择“以管理员身份运行” 。 否则,正常启动即可。
如果打算附加到以管理员身份运行或在其他用户帐户(如 IIS)下运行的进程,请右键单击“远程调试器”应用,然后选择“以管理员身份运行” 。 有关详细信息,请参阅以管理员身份运行远程调试器。
首次启动远程调试器时(或在配置它之前),会显示“远程调试配置”向导。
在大多数情况下,请选择“下一步”,直到最后到达该向导的“配置 Windows 防火墙”页。
如果未安装 Windows Web 服务 API(仅会在 Windows Server 2008 R2 上发生这种情况),请选择“安装”按钮。
请至少选择一种要对其使用远程工具的网络类型。 如果这些计算机通过域连接,则必须选择第一项。 如果这些计算机通过工作组或家庭组连接,请根据需要选择第二或第三项。
接下来,选择“完成”以启动远程调试器。
接下来,选择“配置远程调试”以启动远程调试器。
配置完成后,将显示“远程调试器”窗口。
远程调试器正在等待连接。 使用显示的服务器名称和端口号在 Visual Studio 中设置远程连接配置。
若要停止远程调试器,请选择“文件”>“退出” 。 你可以从“开始”菜单或通过以下命令行重新启动它:
<Remote debugger installation directory>\msvsmon.exe
注意
如果需要为其他用户添加权限,请更改远程调试器的身份验证模式或端口号,请参阅配置远程调试器。
远程调试 C++ 项目
在下面的过程中,项目的路径是 C:\remotetemp,且远程计算机的名称是 MySurface。
创建名为 CppConsoleApp 的 C++ 控制台应用程序
在应用程序中容易到达的地方设置断点,例如,在 CppConsoleApp.cpp 中(
main
函数中)。在“解决方案资源管理器”中,右键单击该项目并选择“属性”。 打开“调试”选项卡。
将“要启动的调试器”更改为“远程 Windows 调试器” 。
对属性进行以下更改:
设置 “值” 远程命令 C:\remotetemp\CppConsoleApp.exe 工作目录 C:\remotetemp 远程服务器名称 MySurface:portnumber 连接 带 Windows 身份验证的远程访问 调试器类型 仅限本机 部署目录 C:\remotetemp 其他要部署的文件 $(ProjectDir)\data 如果要部署其他文件夹,且想将某个文件夹中的所有文件部署到同一文件夹,请指定文件夹名称。
有关属性的详细信息,请参阅 C++ 调试配置的项目设置。
在“解决方案资源管理器”中,右键单击解决方案,然后选择“配置管理器”。
对于“调试”配置,请选中“部署”复选框 。
开始调试(单击“调试”>“开始调试”,或按 F5)。
可执行文件会自动部署到远程计算机。
如果出现提示,请输入网络凭据以连接到远程计算机。
所需的凭据特定于网络的安全配置。 例如,在域计算机上,你可以选择安全证书或输入域名和密码。 在非域计算机上,可以输入计算机名和有效用户帐户名(如 MySurface\name@something.com)以及正确的密码。
在 Visual Studio 计算机上,你应看到在断点处已停止执行。
提示
或者,你可以采用单独的步骤部署文件。 在“解决方案资源管理器”中,右键单击项目节点,然后选择“部署”。
如果你有应用程序所需的非代码文件,则可以在“远程 Windows 调试器”页面上的“要部署的其他文件”中以分号分隔列表形式指定它们 。
或者,可以在项目中包括文件,并在每个文件的“属性”页中将“内容”属性设置为“是” 。 将这些文件复制到“远程 Windows 调试器”页上指定的“部署目录” 。 如果需要将文件复制到“部署目录”的子文件夹,还可以将“项类型”更改为“复制文件”并指定其他属性 。
使用远程符号设置调试
你应能够使用你在 Visual Studio 计算机生成的符号调试你的代码。 使用本地符号时远程调试器的性能更佳。
如果必须使用远程符号,需要通过向“工具”>“选项”>“调试”>“符号”中的符号搜索路径添加 Windows 文件共享,在 Visual Studio 中指定远程符号。