From: Pedro Alves <pedro@codesourcery.com>
To: Jan Kratochvil <jan.kratochvil@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [0/9]#2 Fix lost siginfo_t
Date: Tue, 31 Aug 2010 10:46:00 -0000 [thread overview]
Message-ID: <201008311146.34085.pedro@codesourcery.com> (raw)
In-Reply-To: <20100830201110.GA17151@host1.dyn.jankratochvil.net>
On Monday 30 August 2010 21:11:10, Jan Kratochvil wrote:
> On Mon, 30 Aug 2010 21:50:02 +0200, Pedro Alves wrote:
> > I must confess that my knee-jerk reaction to the main idea
> > of the patchset is "I'm not convinced this is a good idea".
> > A thread can't be stopped for more than one reason at the
> > same time, so why isn't target_wait plus an on-the-side
> > interface to get at the expensive-to-get siginfo enough?
>
> Because linux-nat.c internals stop it on a different signal (SIGSTOP one) than
> the interestign one (e.g. SIGUSR1) for which GDB was stopping.
Ah. Yeah, gdbserver/linux-low.c does not in fact for a SIGSTOP
out of the inferior and requeues signals like linux-nat.c does.
When an lwp stops with a non-SIGSTOP signal, it just sets the
lwp->stop_expected flag (meaning, there's a SIGSTOP in the kernel
signal queue that is expected, because we put it there), and
leaves the lwp stopped as is. There are pros and cons in
doing it that way or doing linux-nat.c's way.
> I had to fix linux-nat.c for backport reasons anyway but I probably could keep
> it only internal (and hack it more dirty without the FSF import intention).
> I see I went needlessly far.
Sorry. :-/
> I am not sure how much interest is in pusing it for FSF linux-nat.c . I made
> it more as a proof of concept before I start fixing gdb/remote.c (for ugdb).
> I did not expect gdb/remote.c needs no changes at all.
>
> I still have not seen any FSF general future development direction,
> linux-nat.c is IMO obsolete already, at least due to FSF gdbserver>.
> OK to
> post some patches to run in remote mode during default "run" etc. commands?
gdb and gdbserver codebases are different, and each has features not
supported by the other, so, dropping one of them now instantly drops
supported features.
What I have been trying to do over the last couple of years that
I've had the opportunity of working on gdbserver, is progressively make
the codebases converge, design, API, and implementation wise, taking the
ideas from each (gdbserver's target_wait interface, no remote protocol
in the backends, breakpoint canceling, etc.). If we keep
doing that, eventually, one of the backends will be a superset of the other
(my bets on gdbserver's), and we can then consider sharing code between
them, or even make gdb invoke gdbserver as a separate binary. Of course,
if someone were to work on doing the conciliation as _main focus_ instead
of piggy backing that on other work that customers actually care for, then
things would move faster...
--
Pedro Alves
prev parent reply other threads:[~2010-08-31 10:46 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-30 7:10 Jan Kratochvil
2010-08-30 19:50 ` Pedro Alves
2010-08-30 20:11 ` Jan Kratochvil
2010-08-30 20:49 ` Mark Kettenis
2010-08-30 21:13 ` Jan Kratochvil
2010-08-31 7:26 ` Doug Evans
2010-08-31 15:58 ` Joel Brobecker
2010-08-31 10:46 ` Pedro Alves [this message]
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=201008311146.34085.pedro@codesourcery.com \
--to=pedro@codesourcery.com \
--cc=gdb-patches@sourceware.org \
--cc=jan.kratochvil@redhat.com \
/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