From: Roland McGrath <roland@redhat.com>
To: Daniel Jacobowitz <drow@false.org>
Cc: Jan Kratochvil <jan.kratochvil@redhat.com>,
Doug Evans <dje@google.com>,
GDB Patches <gdb-patches@sourceware.org>,
mark.kettenis@xs4all.nl
Subject: Re: [patch] Fix Linux attach to signalled/stopped processes
Date: Tue, 15 Apr 2008 08:14:00 -0000 [thread overview]
Message-ID: <20080415012633.6573626FA5F@magilla.localdomain> (raw)
In-Reply-To: Daniel Jacobowitz's message of Monday, 14 April 2008 10:34:48 -0400 <20080414143448.GA32227@caradoc.them.org>
> Isn't this still racy? [...]
Yes, you're right.
> This has the same problem of using SIGSTOP in that it may stop other
> threads of the process.
No, it won't. Generating SIGSTOP doesn't stop anything (it only clears all
pending SIGCONTs--unlike generating SIGCONT, which does the resuming).
Things only stop when SIGSTOP is delivered. When you use tkill or
PTRACE_ATTACH to send the SIGSTOP to the particular thread, it is already
ptrace'd by the time it tries to deliver the signal, so you intercept it.
The only way other threads can be stopped is if you do PTRACE_CONT,SIGSTOP
or similar.
> Thanks again for the assistance. This conversation gave me a useful
> insight into one of those things you already probably know: GDB's use
> of SIGSTOP instead of another signal is not significant. We want the
> process to be signalled, that's all.
The significance of SIGSTOP is that it cannot be blocked (and that it's
what PTRACE_ATTACH generates anyway). For the thread "to be signalled",
you have to generate some signal that is not blocked by that thread.
Every other signal can be blocked, except for SIGKILL (which is too
significant in its own right).
> Since each SIGSTOP we send stops the whole group, [...]
This is not so in the contexts I think you mean, as I described above.
> I'm not going to make that change right now, but I will add some
> comments about it. We could probably use an RT signal at each point
> we want a stop.
In practice you will 99.44% of the time be able to find some RT signal
that is not blocked. But to worry about the 0.66% you still have to
fall back to SIGSTOP, and in that case you can't rely on queuing.
Thanks,
Roland
next prev parent reply other threads:[~2008-04-15 1:49 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-31 22:07 Doug Evans
2008-04-02 0:01 ` Jan Kratochvil
2008-04-02 0:07 ` Roland McGrath
2008-04-10 15:30 ` Daniel Jacobowitz
2008-04-10 15:37 ` Jan Kratochvil
2008-04-10 15:49 ` Daniel Jacobowitz
2008-04-10 16:00 ` Jan Kratochvil
2008-04-10 19:59 ` Daniel Jacobowitz
2008-04-10 15:39 ` Daniel Jacobowitz
2008-04-10 16:00 ` Jan Kratochvil
2008-04-10 19:48 ` Daniel Jacobowitz
2008-04-11 8:46 ` Roland McGrath
2008-04-11 17:46 ` Jan Kratochvil
2008-04-11 19:01 ` Daniel Jacobowitz
2008-04-12 7:58 ` Roland McGrath
2008-04-14 15:09 ` Daniel Jacobowitz
2008-04-14 15:31 ` Daniel Jacobowitz
2008-04-15 22:14 ` Jan Kratochvil
2008-05-01 18:50 ` Daniel Jacobowitz
2008-07-05 8:48 ` Jan Kratochvil
2008-07-05 13:48 ` Daniel Jacobowitz
2008-09-24 12:46 ` Andreas Schwab
2008-09-26 3:52 ` Jan Kratochvil
2008-09-26 13:00 ` Daniel Jacobowitz
2008-09-28 11:43 ` Jan Kratochvil
2008-09-28 14:58 ` Daniel Jacobowitz
2008-04-15 8:14 ` Roland McGrath [this message]
2008-04-15 13:02 ` Daniel Jacobowitz
2008-04-16 7:01 ` Roland McGrath
2008-04-11 22:20 ` Daniel Jacobowitz
2008-04-11 22:21 ` Pedro Alves
2008-04-11 22:25 ` Daniel Jacobowitz
2008-04-12 0:02 ` Pedro Alves
2008-04-12 0:19 ` Pedro Alves
2008-04-13 9:35 ` Pedro Alves
2008-04-13 13:40 ` Pedro Alves
2008-04-12 16:38 ` Roland McGrath
2008-04-12 16:43 ` Eli Zaretskii
-- strict thread matches above, loose matches on Subject: below --
2007-06-06 14:34 Jan Kratochvil
2007-06-11 13:44 ` Jan Kratochvil
2007-06-15 18:02 ` Mark Kettenis
2007-06-26 22:40 ` Jan Kratochvil
2007-06-27 0:13 ` Mark Kettenis
2007-06-27 11:59 ` Jan Kratochvil
2007-06-27 18:30 ` Mark Kettenis
2007-06-30 11:45 ` Jan Kratochvil
2007-06-30 11:57 ` Eli Zaretskii
2007-06-30 17:15 ` Jan Kratochvil
2007-06-30 18:52 ` Eli Zaretskii
[not found] ` <200706301852.l5UIq8ek010536@brahms.sibelius.xs4all.nl>
2007-07-01 3:17 ` Eli Zaretskii
2007-07-01 9:34 ` Mark Kettenis
2007-07-01 10:03 ` Jan Kratochvil
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=20080415012633.6573626FA5F@magilla.localdomain \
--to=roland@redhat.com \
--cc=dje@google.com \
--cc=drow@false.org \
--cc=gdb-patches@sourceware.org \
--cc=jan.kratochvil@redhat.com \
--cc=mark.kettenis@xs4all.nl \
/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