VS远程联机调试exe和dll
前期准备工作
目标机器A(需要远程调试的主机,运行着需要调试的exe或者dll)
工作机器B(进行调试的主机)
-
从工作机B上拷贝远程监视器msvsmon.exe所在的目录(x64 或 x86)到目标机器A。
一般都在C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger
- 在Program Files或者Program Files (x86)
- 9.0 表示VS2008 10表示VS2010 14.0表示VS2015;根据自己版本进入相应目录
- x64是调试64位程序 x86是调试32位程序,不是电脑位数
(这里我用VS2008 调试32位程序)将步骤3找到的x86目录拷贝到目标机器A的任意路径
目标机器A准备工作
-
在目标机器A用管理员权限运行msvsmon.exe。(有可能你不会出现下面弹框)
- 这里是说 你只能调试32位程序,因为我们用的是x86目录下的监视器。点击 是。
-
接下来会弹出关于防火墙的弹框,当然你关闭目标机器A的防火墙比较省事。
- 这里是说如果要继续调试,需要配置防火墙。当然点击 是。接下来出现如下图:
- 这里是说如果要继续调试,需要配置防火墙。当然点击 是。接下来出现如下图:
-
配置好后,需要再设置一下监视器的选项。
-
设置后如下图:
工作机器B准备工作
-
在解决方案项目上右键–>属性–>Debugging,设置如下:
- 3 是在目标机器A上,你需要调试的程序。比如C:\Program Files (x86)\XCYK\mytext.exe
- 4 是在目标机器A上,你需要调试的程序的目录。比如C:\Program Files (x86)\XCYK
- Remote Server Name 目标机器的IP,或者你填在监视器中看到的机器名也行。
调试阶段
-
注意点:
- 我们在工作机RemoTe Command 中设置了启动了需要调试的exe(上图红标3的位置),所以在目标机器A中不需要运行需要的调试的程序。
- 需要调试的程序,需要和你工作机的exe保持一致。比如你修改了一点东西,重新编译了,则需要将这个新的exe放置在目标机器上运行。
- 按下F5,你就可以开开心心联机调试了。
调试DLL
- 调试DLL 和exe的设置差不多,唯一不同的地方就是,在解决方案项目上右键–>属性–>Debugging,RemoTe Command 中设置启动的exe,也就是你需要调用该dll的程序。
- 例如:我需要调试mydll.dll,这个dll是被mytext.exe调用的。则在mydll解决方案项目上,右键–>属性–>Debugging,在RemoTe Command中设置mytext.exe的路径。