小编开发的exe在本地可以正常运行,放到别的PC上经常遇各种各样的奇葩问题,但是研发工作环境又无法复现。这个时候远程调试可以发挥它强大的功能,在本地就可以调试运行在现场环境的程序。
一、获取远程工具
有两种方式能够获取Remote Debugger
1.从官网下载:https://learn.microsoft.com/en-us/visualstudio/debugger/remote-debugging?view=vs-2019
2.从主机安装Visual Studio的目录中获取,我的目录为:D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger
二、使用Remote Debugger工具
1.一定要选择与远程主机操作系统相匹配的远程工具,如x64、x86,和ARM等,把Remote Debugger文件夹拷贝到远程主机的任意位置。
2.启动该工具(msvsmon.exe),点击工具->选项,随机填写对应的端口号
注:端口号不可填写已经占用的端口(可以使用命令行 netstat -ano查看端口占用情况)
3.配置用户身份验证方式。远程工具支持两种方式:Windows Authentication(默认方式),和No Authentication。我选择无身份验证,点击确定。
三、VS调试设置
1.把研发主机生成的exe、pdb以及依赖的动态库dll文件全部拷贝到远程主机上,保证工程代码和现场运行软件的代码为同一份,否则可能导致attach的是之前编译的版本,导致两台电脑不匹配。
然后把程序运行起来。
2.用VS生成exe程序的源代码,点击调试->附加到进程,进入附加进程界面。
因为采用无身份验证,Connection Type选择Remote。在Connection Target中输入对方主机名和TCP/IP端口号,亦可用对方主机的IP地址代替主机名,点击Find,跳出远程连接界面,选择自动检测到的设备名,点击Select。
3.在Attach to Process页面中勾选Show processes from all users,在所有进程中找到远程主机运行的exe程序,双击程序名或选中该进程,点击Attch附加到进程中。
注:若找不到,可点击Refresh刷新远程目标机器的当前进程列表
4.当连接成功之后,远程主机的Remote Debugger会显示你已经连接,如下图所示:
然后就能在本地主机A中对对方主机运行的C程序进行调试了。
问题参考
1.“远程调试监视器(MSVSMON.EXE)似乎没有在远程计算机上运行“的完美解决方案
解决方法:
1)查看Windows Firewall服务(或其它防火墙软件)是否启动,如果启动则关闭。
2)删除项目目录下bin和obj两个文件夹,然后重新生成项目。在重新生成时可能会提示引用的DLL错误,重新引用报错的DLL后,再次生成即可。文章来源:https://www.toymoban.com/news/detail-598096.html
2.远程调试错误和疑难解答:
https://learn.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging-errors-and-troubleshooting?view=vs-2022文章来源地址https://www.toymoban.com/news/detail-598096.html
到了这里,关于VS 远程调试-Remote Debugger的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!