gdb refuses to connect to localhost

Reinaldo Molina me@molinamail.com
Fri Dec 25 22:36:22 GMT 2020


Hey guys!

Looking for some assistants here. I am trying to debug an application using `gdbserver`, but it seems my `lo` network device is messed up. `gdb` refuses to connect to `localhost` every time. Here is my flow:

Terminal 1: `gdbserver localhost:8888 build/luajit`
  - Variants I've tried: `127.0.0.1:8888`

Terminal 2: `gdb build/luajit -ex 'target remote localhost:8888'`

Output from `gdb` on Terminal 2:

    (gdb) target remote :8888
    Remote debugging using :8888
    Ignoring packet error, continuing...
    warning: unrecognized item "timeout" in "qSupported" response
    Ignoring packet error, continuing...
    Remote replied unexpectedly to 'vMustReplyEmpty': timeout

Output from `ip addr show lo`:

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
          valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
          valid_lft forever preferred_lft forever

Content from `/etc/hosts`

    # Static table lookup for hostnames.
    # See hosts(5) for details.
    127.0.0.1	localhost
    ::1		localhost
    127.0.1.1	myhostname.localdomain	myhostname

I'm using the command to monitor the ports: `netstat -tulanp`. Here is the output right after running just `gdbserver`:

    (Not all processes could be identified, non-owned process info
    will not be shown, you would have to be root to see it all.)
    tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      193337/gdbserver

Output just after telling `gdb` to connect:

    (Not all processes could be identified, non-owned process info
    will not be shown, you would have to be root to see it all.)
    tcp        1      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      193337/gdbserver
    tcp        0      0 127.0.0.1:50720         127.0.0.1:8888          ESTABLISHED 195502/gdb
    tcp      478      0 127.0.0.1:8888          127.0.0.1:50720         ESTABLISHED -

Looks promising but then:

    (Not all processes could be identified, non-owned process info
    will not be shown, you would have to be root to see it all.)
    tcp        1      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      193337/gdbserver
    tcp        0      0 127.0.0.1:50720         127.0.0.1:8888          FIN_WAIT2   -
    tcp      722      0 127.0.0.1:8888          127.0.0.1:50720         CLOSE_WAIT  -

I also don't have any firewalls: `iptables -L`

    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination

    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination

gdb version:

    GNU gdb (GDB) 10.1
    Copyright (C) 2020 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

System info: `uname -all`, it's Arch Linux BTW :D

    Linux helios 5.9.14-arch1-1 #1 SMP PREEMPT Sat, 12 Dec 2020 14:37:12 +0000 x86_64 GNU/Linux

Just baffled by this behavior.

Thanks,
Reinaldo Molina




More information about the Gdb mailing list