vs2013远程调试技巧

0 篇文章 0 订阅

vs2013远程调试调试

  • vs远程调试是基于bs架构的,首先,程序在远程启动(debug版,记得附带pdb文件),然后通过msvsmon.exe作为代理,和客户端(本机)进行交互。
  • 下面介绍步骤,也可以本地进行测试,目标为本地主机172(哈哈哈)。当然,下面就以远程的来举例子。

附加到远程进程

在目标机器运行远程调试代理msvsmon.exe

  • 关闭远程计算机的防火墙(必须是局域网内的计算机,不能是公网)
  • 需要注意的是目标机器无需安装vs,但是目标机器必须有和本地主机一致的远程调试代理,可以下载对应版本的调试代理。但是最容易的就是直接将本地主机vs安装目录\Common7\IDE\Remote Debugger整个目录复制到远程主机上。这个 目录下有x64和x86两个版本,需要注意的是,你若是想调试x86的程序,那只能运行x84这目录下的msvsmon.exe
  • 运行msvsmon.exe,Tool->option->No Authentication不设置远程验证,接下来设置监听端口号
  • 这样一来,我们的调试环境就已经打搭建起来了,理论上我们已经具备远程调试的通信环境了。

开始调试

  • 我们在本地主机上将编译模式调到debug模式,然后编译,然后将整个编译后的二进制文件(.exe, .pdb和相关的dll依赖)复制到目标机器上。
  • 接着我们打开msvsmon.exe,添加代理端口号:比方说4020,身份验证设置为无身份验证。点击确定开启代理。这个时候,代理服务器已经被运行在刚刚设置的端口号上了。如图所示
    在这里插入图片描述
  • 红色框框表示远程的主机名称和服务的端口号。
  • 接下来我们在本地主机通过远程主机名称和端口号连接这台机器。

本地主机设置

  • 以管理员权限运行VS(记得哦,不然会报错找不到远程监视器msvsmon.exe,不过若是不用管理员权限运行的话,在运行的时候也会提醒UAC提升权限的,放心)

  • 工具->附加进程,然后在筛选器 选项选择查找 ,这里可以看到同网段内的远程调试服务,选择你想要的那个,(这里偶尔会连接 失败,确保远程主机的防火墙已经关闭,若是依旧失败,等待片刻后重新连接就可以了,这里应该是一个小bug,就是这个连接select有时候不太稳定),接着点击刷新,可以看到远程主机的正在运行的进程。

  • 远程主机运行程序,本地主机选择附加到这个程序。

  • 命中断点(当然,这个应该是预先就设置好的断点)。

  • 需要注意的是,附加到进程进行调试,不必在附加前启动被附加的进程,可以是附加的进程已经启动一段时间后进行附加,即进程随时可以被附加,只要被附加,就会启动远程调试服务进行调试信息的传递。

直接调试远程程序

  • 修改项目设置如图所示
    在这里插入图片描述
  • 直接按下f5就可以调试了。

写在后面

  • 远程调试可以说是非常好用了,特别是以下场景。
  • 情景一:本地运行没有任何问题,但是在其他环境运行得时候总是会有莫名的崩溃问题,自己运行又不会崩溃,这个时候就很难在自己本机上复现了,所以这个时候远程调试就派上用场了。我们可以将来debug版本和远程调试工具发送给该崩溃主机,然后通过远程调试的办法,对其进行远程调试和崩溃断点定位。
  • 情景二:本地运行的程序没有任何问题,在别的机器运行闪退…。这个时候远程调试直接过去命中崩溃点就可以解决问题。
  • 上面是基于vs2013的,在vs的更高版本上也是适用的!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值