一、前言
1、同一局域网内,主机和虚拟机远程调试,非本机的环境,只要可以访问机器的ip,都可以使用vs进行调试;
2、远程计算机安装远程调试器:Remote Ddbugger,可直接复制vs安装目录Common7\IDE\Remote Debugger下的X86目录或X64整个目录;
3、需要确保DCOM服务是打开的,控制面板——服务;
4、VS打开需要调试的工程代码
二、调试步骤
此处以vs2008为例进行说明
测试程序:RemoteDemo.exe,代码如下:
#define DEF_MAX_VALUE (10)
int _tmain(int argc, _TCHAR* argv[])
{
while (!IsDebuggerPresent())
{
Sleep(3000);
}
int i = 0;
for (; i < DEF_MAX_VALUE; i++)
{
std::cout<< "当前值为: "<< i << std::endl;
}
system("pause");
return 0;
}
1、调试方法1
1)配置target
将msvsmon.exe、RemoteDemo.exe(可用Release版本)复制到target目标机,并以管理员权限运行msvsmon.exe,配置步骤如下:
2)配置本地vs环境
在本机打开的vs工程中,右键打开工程DebugDemo -->properties,配置如下:
说明:
Remote Command: 调试程序RemoteDemo.exe在target目标机上的全路径;
Remote Server Name: 目标机target的IP地址;
Connection:连接方式,选为不验证用户身份
确保机器的防火墙是关闭的状态
3)设置断点
4)VS中F5启动调试,程序运行到断点处
这样就可以继续往下调试
2、调试方法2
1)与1方法相同配置
2)在target目标机上手动启动RemoteDemo.exe,因为
while (!IsDebuggerPresent())
{
Sleep(3000);
}
手动启动的程序会等待attach
3)在本地VS中,依次打开Debug——>Attach to Process,或者Tools——>Attach to Process,并配置如下:
Qualifier: target目标机的IP地址
结果如下: