gdb refuses to connect to localhost

Simon Marchi simon.marchi@polymtl.ca
Fri Dec 25 22:55:19 GMT 2020



On 2020-12-25 5:36 p.m., Reinaldo Molina via Gdb wrote:
> 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

That sounds like you are really connecting to something else than gdbserver.

> 
> 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 have no clue.  Try "set debug remote 1" in GDB before connecting,
see what data GDB receives.

You can also start GDBserver with --remote-debug to see if there
is some chit chat when GDB connects to it.  If you don't see anything
here, it's probably because GDB ended up connecting to some other
program.

Simon


More information about the Gdb mailing list