RE: [patch] MI telnet service

Marc Khouzam
2012-07-14T19:37:29Z

> > -----Original Message-----
> > From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> > owner@sourceware.org] On Behalf Of Eli Zaretskii
> > Sent: Thursday, July 12, 2012 2:29 PM
> > To: Abid, Hafiz
> > Cc: gdb-patches@sourceware.org
> > Subject: Re: [patch] MI telnet service
> >
> > > From: "Abid, Hafiz" <Hafiz_Abid@mentor.com>
> > > Date: Thu, 12 Jul 2012 11:20:36 +0000
> > >
> > > This patch provides implementation of telnet service. This is based
> > on initial work by Grigory Tolstolytkin.(http://sourceware.org/ml/gdb-
> > patches/2011-11/msg00466.html)
> >
> > Thanks. A few comments about the documentation part:
> >
> > > +Start a telnet service on the given port. After the service is
> > started,
> > ^^
> > Two spaces between sentences, please (here and elsewhere, including in
> > comments to C code).
> >
> > > +user can connect to the gdb via telnet and execute CLI commands in
> > ^^^
> > "@value{GDBN}" instead of a literal "gdb".
> >
> > > +new one. For telnet service to work, @value{GDBN}
> > > +should be configured with --enable-gdbmitel=yes.
> >
> > Use @option for options, like this: @samp{--enable-gdbmitel=yes}.
> >
> > Btw, why does it make sense to require a configure-time option for
> > this feature? why not include it by default?
>
> It just felt a bit safer to keep it optional. If community thinks that
> it is useful feature then I see no problem in making it available by default.

I think it makes sense to have a way to turn off this feature. Some people may
think it is a security issue to have this port open and wish to keep the feature
completely disabled. However, if Eclipse is to make use of this feature, it
has to be enabled in GDB, and it would complicate things greatly if we had to
ask the user to re-compile GDB to enable this setting. It would be much nicer
if it worked directly in the GDB distributed with their linux box.
Therefore, I hope we can have this setting enabled by default.

I tried out the patch with and without Eclipse and it looks quite good!
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.

- 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