RE: [patch] MI telnet service

Marc Khouzam
2012-07-24T19:06:37Z

> > Here are some issues I found:
> >
> > - If I set a tty (-inferior-tty-set), GDB exits (or crashes?) when
> > sending an
> > empty command (just pressing enter) over telnet. Eclipse uses a tty
> > for the
> > inferiors.
> Can you kindly list the steps to reproduce this crash. I
> tried but it worked ok for me.

It happens all the time with Eclipse. I thought I had also
reproduced it on the command line but today I just can get it to
happen anymore directly in GDB. But I also can't stop it from
happening in Eclipse :)
I reproduced the _exact_ same MI session outside of eclipse
as the one that crashes, and it still doesn't happen.
I'll have to figure out what is different.

You could try it with Eclipse and see if it happens to you also.
Just launch a debug session and start the telnet service
from the eclipse gdb console, then telnet in and press enter.

While trying to reproduce this, I ran into another problem
that I could reproduce outside of Eclispe.
In async-mode, gdb seems to go into a tight-loop when resuming
execution from the telnet session (excerpts of the session below):

> ./gdb/gdb -i mi <any program>
~"GNU gdb (GDB) 7.5.50.20120724-cvs\n"
(gdb) -gdb-set target-async on
^done
(gdb) start
&"start\n"
~"Temporary breakpoint 1 at 0x804850d: file loopfirst.cc, line 5.\n"
[...]
*stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={addr="0x0804850d",func="main",args=[],file="loopfirst.cc",fullname="/home/lmckhou/testing/loopfirst.cc",line="5"},thread-id="1",stopped-threads="all",core="0"
=breakpoint-deleted,id="1"
(gdb) -start-telnet-service 9999
^done

=> start a telnet session from another terminal and give the 'next' command
=> from the telnet session.

Switching to interpreter "console".
(gdb) ^running
*running,thread-id="all"

=> gdb grabs 100% of the CPU and must be killed with -9

> > - For every command sent over telnet, there is a printout
> in the orinal
> > GDB
> > saying "Switching to interpreter "console"." Not a big
> deal, but maybe
> > something to remove.
> >
> > - starting the telnet service, connecting to it, and then
> stopping the
> > service (-stop-telnet-service), does no seem to clean up the port
> > propertly
> > and I see:
> > ^error,msg="Error: port 9996 can't be bind"
> >
> > - If I start GDB in CLI mode, and try to use the telnet service, GDB
> > segfaults
> > after the first command is sent over telnet. I know this service is
> > not
> > currently meant to be used with the CLI mode, but it should
> not crash
> > :)
> > I personally think this would be cool to have even for CLI
> mode, but if
> > it
> > won't be for now, maybe the telnet service should be
> disabled in that
> > case.
> >
> > I realize this is a first and important step, but it will
> be even nicer
> > when the telnet service supports tab-completion and command-history.
> >
> > This is very exciting! Thanks!
> >
> > Marc
> Thanks for taking time to test.
>
> Regards,
> Abid
>