不同网段之间实现GDB远程调试功能

在开发过程中,使用gdb远程调试时,会碰到 Linux 服务器的网段和板载设备的网段不是一样的,不能正常使用 gbd 远程调试功能。

板载设备和电脑连接路由器,属于同一个网段,如192.168.1.1,而路由器和Linux服务器属于另一个网段,如10.20.51.251。

板载设备和电脑可以互相ping通,板载设备或电脑也能ping通Linux服务器,但Linux服务器却不能ping通板载设备或电脑。

板载设备或电脑能ping通Linux服务器是因为路由器和服务器属于同一网段,所以通过路由器转发即可ping通,服务器可以ping通路由器的IP,但是无法ping通路由器下面的局域网IP

./arm-himix200-linux-gdb test
...

(gdb) target remote 192.168.1.102:8005
192.168.1.102:8005: 连接超时.

(gdb)

启用路由器的 DMZ主机功能,添加板载设备的IP地址即可

假设板载设备的IP是”192.168.1.140″,路由器的IP是”10.20.51.100″,服务器的IP是”10.20.51.120″。

在使用 GDB 远程调试时,板载设备执行gdbserver,连接的是服务器的IP地址。

./gdbserver --remote-debug 10.20.51.120:8005 test

在服务器上运行gdb,连接使用的是路由器的IP地址,而不是板载设备的IP地址。

./arm-himix200-linux-gdb test
...

(gdb) target remote 10.20.51.100:8005
Remote debugging using 10.20.51.100:8005
Reading /lib/ld-linux-armhf.so.3 from remote target...

Reading /lib/ld-linux-armhf.so.3 from remote target...

Reading symbols from target:/lib/ld-linux-armhf.so.3...(no debugging symbols found)...done.

0x76fcebc0 in ?? () from target:/lib/ld-linux-armhf.so.3
(gdb)

此时可以正常使用 gdb 的远程调试功能了。

如何设置路由器的DMZ主机功能:

Original: https://www.cnblogs.com/const-zpc/p/16451422.html
Author: 大橙子疯
Title: 不同网段之间实现GDB远程调试功能

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/714471/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球