VS远程联机调试exe和dll

时间:2024-03-26 20:59:25

VS远程联机调试exe和dll

前期准备工作

  1. 目标机器A(需要远程调试的主机,运行着需要调试的exe或者dll)

  2. 工作机器B(进行调试的主机)

  3. 从工作机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位程序,不是电脑位数
  4. (这里我用VS2008 调试32位程序)将步骤3找到的x86目录拷贝到目标机器A的任意路径

目标机器A准备工作

  1. 在目标机器A用管理员权限运行msvsmon.exe。(有可能你不会出现下面弹框

    VS远程联机调试exe和dll

    • 这里是说 你只能调试32位程序,因为我们用的是x86目录下的监视器。点击 是
  2. 接下来会弹出关于防火墙的弹框,当然你关闭目标机器A的防火墙比较省事

    VS远程联机调试exe和dll

    • 这里是说如果要继续调试,需要配置防火墙。当然点击 是。接下来出现如下图:
      VS远程联机调试exe和dll
  3. 配置好后,需要再设置一下监视器的选项。

    VS远程联机调试exe和dll

  4. 设置后如下图:

    VS远程联机调试exe和dll

工作机器B准备工作

  1. 在解决方案项目上右键–>属性–>Debugging,设置如下:

    VS远程联机调试exe和dll

    • 3 是在目标机器A上,你需要调试的程序。比如C:\Program Files (x86)\XCYK\mytext.exe
    • 4 是在目标机器A上,你需要调试的程序的目录。比如C:\Program Files (x86)\XCYK
    • Remote Server Name 目标机器的IP,或者你填在监视器中看到的机器名也行。

调试阶段

  1. 注意点:
    • 我们在工作机RemoTe Command 中设置了启动了需要调试的exe(上图红标3的位置),所以在目标机器A中不需要运行需要的调试的程序。
    • 需要调试的程序,需要和你工作机的exe保持一致。比如你修改了一点东西,重新编译了,则需要将这个新的exe放置在目标机器上运行。
  2. 按下F5,你就可以开开心心联机调试了。

调试DLL

  1. 调试DLL 和exe的设置差不多,唯一不同的地方就是,在解决方案项目上右键–>属性–>Debugging,RemoTe Command 中设置启动的exe,也就是你需要调用该dll的程序。
  2. 例如:我需要调试mydll.dll,这个dll是被mytext.exe调用的。则在mydll解决方案项目上,右键–>属性–>Debugging,在RemoTe Command中设置mytext.exe的路径。