如何使用VC进行远程调试(Remote Debug)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用VC进行远程调试(Remote Debug)相关的知识,希望对你有一定的参考价值。

1. 配置目标机1)拷贝Remote Debugger客户端与目标程序的调试版本到目标机。拷贝目录C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/RemoteDebugger/x86。目标程序如C:/Windows/System32/Thpsvr.exe2)执行Remote Debugger客户端程序msvsmon.exe。首先关掉Windows防火墙。运行程序后,选择[Tools]-[Options]。选择[No Authentication(native only)],并勾选[Allow any userto debug]。2. 配置主机1) 打开工程,选择调试模式。由菜单依次选择[Project] [Properties] [Configuration Properties] [Debugging]。将Debuggerto launch选为Windows Remote Debugger.2) 配置Remote Debug参数。[Remote Command] 设置为目标程序全路径,C:/Windows/System32/Thpsvr.exe。[CommandArguments] 按需要为程序设置参数。[Remote Server Name] 填入目标机的IP地址。[Connection] 设为Remote with no Authentication(native only)其它设置不需要改动。客户机和主机配置都已经完成,接下来以和本机调试相同的方法进行调试就可以了。 参考技术A   Debugging Out-Of-Process Server)
  因为服务的方法和事件的实现要靠客户来触发,所以调试服务必须要先启动客户程序。
  方法一:1.在ProjectàSetting的Debug Tab上输入客户程序;2.
  在服务程序代码中设置断点既可调式。
  方法二:(在客户工程中启动调试任务)1.
  打开客户工程,设置为Debug编译模式;打开JIT(Jst-In-Time )选项。[ ToolàOptionàDebug Tab]选定"Just-In-Time Debugging "和
  "OLE RPC Debugging"选项。2.
  在代码中,调用服务的那行代码处设置断点,启动Debugger运行客户程序;3.
  当调试在断点处(调用服务处)停止时,跟进(Setp Into)调用,如果你的应用程序连到了MFC,VC会自动打开进入到正确合适的代码处;4.
  用步进(Step Over)调试直至出现汇编,在客户stub DLL的开始处标记;5.
  继续运行通过Stub和Proxy单步调试,当步进到服务的方法时,VC会自动启动debugger的另一个实例。<参见MSDN
  "HOWTO:Debug OLE Application
  Debug the Message ActiveX Control[ProjectàSettingàDebug Tab
  ,在"Executable For Debug Session"的中选择合适的程序]
  调试远程对象(
  Debug Remote Object)
  Attaching the Debugger to a Remote Process1.
  打开客户程序,设置好断点;2.用Debugge运行程序直至触发断点,确定此此时对象在服务方已被激活;3.
  在组件所在的机子上启动VC
  ,激活Attach To Process
  命令,从弹出的进程列表框中选择组件或她的Surrogate
  ,使Debugger吸附到对象的进程中。4.在VC环境中打开组件源代码,设置好断点;5.
  在客户端,恢复运行程序,当远程对象运行到断点时,停止。
参考技术B 1. 配置目标机
1)拷贝Remote Debugger客户端与目标程序的调试版本到目标机。
拷贝目录C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/Remote
Debugger/x86。
目标程序如C:/Windows/System32/Thpsvr.exe
2)执行Remote Debugger客户端程序msvsmon.exe。
首先关掉Windows防火墙。
运行程序后,选择[Tools]-[Options]。选择[No Authentication(native only)],并勾选[Allow any user
to debug]。
2. 配置主机
1) 打开工程,选择调试模式。
由菜单依次选择[Project] [Properties] [Configuration Properties] [Debugging]。将Debugger
to launch选为Windows Remote Debugger.
2) 配置Remote Debug参数。
[Remote Command] 设置为目标程序全路径,C:/Windows/System32/Thpsvr.exe。[CommandArguments] 按需要为程序设置参数。
[Remote Server Name] 填入目标机的IP地址。
[Connection] 设为Remote with no Authentication(native only)
其它设置不需要改动。
客户机和主机配置都已经完成,接下来以和本机调试相同的方法进行调试就可以了。

以上是关于如何使用VC进行远程调试(Remote Debug)的主要内容,如果未能解决你的问题,请参考以下文章

Pycharm远程调试之ssh remote debug(二)

IDEA线上排错神器之Remote JVM Debug(JVM远程Debug)

Pycharm远程调试之ssh remote debug -- Before Launch

如何使用VC进行远程调试

VC++6.0中如何用Debug进行程序调试?

IDEA配置远程debug