This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: MI testsuite improvements
- From: "Alain Magloire" <alain at qnx dot com>
- To: cagney at gnu dot org (Andrew Cagney)
- Cc: alain at qnx dot com (Alain Magloire), nickrob at snap dot net dot nz (Nick Roberts), bob at brasko dot net (Bob Rossi), gdb-patches at sources dot redhat dot com
- Date: Thu, 17 Feb 2005 11:58:45 -0500 (EST)
- Subject: Re: MI testsuite improvements
>
> Bob Rossi wrote:
> > On Wed, Feb 16, 2005 at 09:41:56AM -0500, Andrew Cagney wrote:
> >
> >>Bob Rossi wrote:
> >>
> >>
> >>>>Let me know what you think. If you want the dbg.log files, I can provide
> >>>>them.
> >>
> >>I was kind of looking for an executive summary :-) I've attached a
> >>trimmed diff.
> >>
> >>Two things:
> >>
> >>- it should't be using --interpreter console ...
> >>Can you and/or: add a new -mi-tty command (+test, +doco) and use that;
> >>invoke GDB with the --tty=... option. Your call. Either pre-approved
> >>(but get thumbs up from Eli on the doco).
> >>
> >>- can the TTY output be identified in someway?
> >>That might make debugging easier, but if it isn't possible I guess we
> >>live with that.
> >
> >
> > OK, I like this idea a lot. I'll make a new mi function that allows you
> > to set a tty. I'll also make a new MI function that will allow you to
> > retrieve the tty device being used, both GDB and the inferior.
>
> Ok. Wonder if it should be ``set/show tty'', "tty ..." just a wrapper.
>
> > Finally, I think it would be helpful to have GDB actually be able to
> > create a pty for the front end. In case you didn't know, creating a pty
> > can be a non portable task, and GDB should be capable of doing it every
> > where it ports to. This would help out the Front Ends a lot. What do you
> > think? Something like -mi-tty-new -mi-tty-close?
>
> I suspect this is correct.
>
> Alain, how does the CDT currently hande the PTY problem? Would this be
> useful?
>
Yes, it would be.
The problem comes from local inferior outputs that are intertwine
with MI stream(The remote case is ok since the output is properly
wrap in @"..." steam).
CDT handles this by creating JNI code per platform that
will create a pseudo pty, the slave pty is pass to gdb
gdb --tty /dev/ptys/n app
And the IDE is reading at the other end of the master and
redirecting the outputs to the IDE console widget.
Caveats:
- Not all platform supports pseudo tty, we still have
no solution for Win32/cygwin.
- On some platform like Solaris, because the way the suspend is
implemented, CTRL-C will no longer work.
- When we relaunch/restart, it probably will not work, since
the tty is close by the inferior. (Relaunching is important when you have an
huge executable .. loading the symbols can be a pain).
Now if gdb can create the pty and can give back the master/slave
pty so we can redirect the output to the IDE ... that would be perfect
making the JNI code obsolete.
Sorry, I did not follow Bob's proposals in the mailing list.
So maybe I'm completely of track.