From: Denis PILAT <denis.pilat@st.com>
To: gdb-patches@sourceware.org
Subject: [RFA] TUI is broken under Solaris
Date: Tue, 17 Apr 2007 15:48:00 -0000 [thread overview]
Message-ID: <4624EADC.806@st.com> (raw)
In-Reply-To: <20070327200906.GO28164@caradoc.them.org>
Daniel Jacobowitz wrote:
> On Mon, Mar 19, 2007 at 04:58:23PM +0100, Denis PILAT wrote:
>
>> Daniel Jacobowitz wrote:
>>
>>> Thanks for all your detective work on this. I'm sorry I apparently
>>> broke TUI so badly - I wish we had test coverage.
>>>
>> About TUI for Solaris, Fred and I have found where the problem comes from, but
>> we are not sure about the fix.
>> A "new" call to solib_add in solib-svr4.c has been added 2006-10-18 (yes 5
>> months ago!).
>> This call leads to a problem about the owner of the target_terminal, it seems
>> that the TUI tries to write in the terminal without beein owner.
>>
>
>
>> We tried just to add a call to "target_terminal_ours ()" at the beginning of
>> infcmd.c (post_create_inferior), that fixes the problem.
>> But I guess it's not the good place to do that.
>>
>
> I don't know. Maybe? It should happen somewhere central, either
> central to TUI or central to GDB, so that we have the terminal before
> TUI ever attempts to refresh.
>
> post_create_inferior might be the right place.
>
>
Here is the proposed patch:
It fixes the tui problem under Solaris. TUI hosted under Solaris has
been broken for monthes. No way to break on main and run a simple program.
Here we avoid any written to the terminal without beeing owner of it.
Don't know if it the best solution but it works
No testsuite regression for Solaris and Linux native debuggers.
--
Denis
2007-04-17 Denis Pilat <denis.pilat@st.com>
* infcmd.c (post_create_inferior): Start with a call to
target_terminal_ours().
Index: infcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/infcmd.c,v
retrieving revision 1.151
diff -u -p -r1.151 infcmd.c
--- infcmd.c 27 Mar 2007 23:01:00 -0000 1.151
+++ infcmd.c 17 Apr 2007 15:04:03 -0000
@@ -406,6 +406,9 @@ tty_command (char *file, int from_tty)
void
post_create_inferior (struct target_ops *target, int from_tty)
{
+ /* Be sure we own the terminal in case write operations are performed. */
+ target_terminal_ours ();
+
/* If the target hasn't taken care of this already, do it now.
Targets which need to access registers during to_open,
to_create_inferior, or to_attach should do it earlier; but many
next prev parent reply other threads:[~2007-04-17 15:42 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-19 1:53 TUI + gdbserver broken? Pedro Alves
2007-03-19 2:11 ` Daniel Jacobowitz
2007-03-19 15:58 ` Denis PILAT
2007-03-27 20:09 ` Daniel Jacobowitz
2007-04-17 15:48 ` Denis PILAT [this message]
2007-04-17 15:51 ` [RFA] TUI is broken under Solaris Daniel Jacobowitz
2007-04-18 8:24 ` Denis PILAT
2007-03-19 21:43 ` TUI + gdbserver broken? Pedro Alves
2007-03-19 22:14 ` Daniel Jacobowitz
2007-03-19 23:31 ` Pedro Alves
2007-03-19 23:41 ` Daniel Jacobowitz
2007-03-20 0:39 ` Pedro Alves
2007-03-20 2:56 ` Daniel Jacobowitz
2007-03-20 9:05 ` Pedro Alves
2007-03-20 23:21 ` Pedro Alves
2007-03-22 2:51 ` Pedro Alves
2007-03-27 20:15 ` Daniel Jacobowitz
2007-03-29 2:26 ` Pedro Alves
2007-03-29 18:55 ` Daniel Jacobowitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4624EADC.806@st.com \
--to=denis.pilat@st.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox