Linux 使用gdbServer进行远程调试

Linux 使用gdbServer进行远程调试,linux,Linux,1) 我通过GDB myAppName在远程计算机上启动GDB 2) 然后我给出run-p端口号 3) 然后我在上面提到的端口上运行与之连接的java应用程序 现在,当我试图通过gdbserver进行远程调试时,场景是 1) 我在远程机器上运行gdb服务器 gdbserver主机:应用程序的端口路径 现在,当我尝试将java客户端应用程序连接到gdbserver端口时,它将无法连接 因此,我正在gdb服务器中搜索gdb的run-p命令的替代方法 我尝试的是通过EclipseCDT远程调试C代码

1) 我通过GDB myAppName在远程计算机上启动GDB

2) 然后我给出run-p端口号

3) 然后我在上面提到的端口上运行与之连接的java应用程序

现在,当我试图通过gdbserver进行远程调试时,场景是

1) 我在远程机器上运行gdb服务器 gdbserver主机:应用程序的端口路径

现在,当我尝试将java客户端应用程序连接到gdbserver端口时,它将无法连接

因此,我正在gdb服务器中搜索gdb的run-p命令的替代方法

我尝试的是通过EclipseCDT远程调试C代码


非常感谢您的帮助。

gdbserver可以根据文档启动,并附加到某些系统上的pid,使用以下不同于正常调用的语法

gdbserver主机名:端口--附加pid

或者,gdb可以使用随后由远程机器启动的程序启动

gdbserver主机名:端口程序

然后您可以使用从另一个远程gdb连接到它

(gdb)目标远程主机名:端口

Eclipse可能会做同样的事情,只要远程gdbserver像上面那样被调用

然后使用其他端口启动远程程序

(gdb)运行-p someotherport


这第二次调用,根据您上面的评论,我假设您已经为您的程序创建了一些标志,允许它绑定到其他端口

,但我确实(gdb)运行-p1034,其中-p表示端口。这不能在gdbserver中完成。因为如果我现在理解您的问题,它只与pid而不是端口关联(它在端口上运行)。gdbserver需要一个通信端口,而您的远程程序也需要一个端口。只需选择不同的端口即可。