首先什么是远程调试,我的理解是编译后的程序在目标机器上运行,而代码在本机,通过调试器把调试信息传回 从而达到远程调试目的。
在很多时候,比如开发机器硬件环境和目标机器有差别,开发环境性能不高 而程序要求运行在配置较高的环境中,例如目标机器不能放代码等等。废话少说先说配置过程吧
visual studio 首先拷贝 vs安装目录下有一个 msvsmon.exe 。不同版本在你机器上的路径可能有所不同,把这个拷贝到目标机器上 我机器上的是C:/Program Files/Microsoft Visual Studio 9.0/Common7/IDE/Remote Debugger/x86拷贝到目标机应用程序所在的目录下,然后在远程机器运行msvsmon.exe (有的机器会提示 远程调试器不支持此版本,有的版本 运行后可以设置端口号)。在本机开启visual studio 打开工程的属性设置窗口 不同版本可能有不同界面,但都会有一个调试选项 原则远程调试器 按意思理解找到设置远程IP的地方 。这里有一个要注意的地方是 会让你指定远程命令 也就是远程的程序所在的位置,最好是设置成本机的程序路径和远程是一样的,vc6下第一次调试时 会让你选择是加载本地系统dll还是远程dll。启动运行,如果程序和本地代码匹配不上,请检查你是否是release版本而又不带调试信息,如果带调试信息和代码对应不上 把pdb文件拷贝过去试试。大概思路就是这样
QT下 目标在Linux上运行,又不想使用gdb取调试(恕本人对GDB命令不熟悉)把gdbserver和你要调试的程序放同一个目录下,
然后开启cd /opt/Mydir ; ./gdbserver 172.16.2.185:2345 ./test 就启动了,这时候 会等待远程连接。你可以把其中的IP和端口换成你机器的IP和端口,同visual studil远程调试一样 你也需要把你要调试的动态库 和应用程序最好放在同一目录下边,例如你要调试a.so 目标机器放在了/lib下边 你的机器也最好放在/lib下边,程序在远程机器上的路径和你机器上的路径相同。在本机启动QtCreator (我的是QT5)选择菜单栏的调试菜单 选择开始调试 再选择attachto running server出现以下 其中本地执行档 表示你的程序在本地的路径,最好把本机要调试的程序路径和远程机器一样。
你应该懂上边的意思了。
再说eclipse远程调试: