This is the mail archive of the
mailing list for the glibc project.
Re: linking experimental patch
On Tue, 2008-03-18 at 12:57 -0400, Daniel Jacobowitz wrote:
> > While it would definitely be better not to fork a broken task and
> > just freeze all threads one by one and make the dump internally,
> > Linux does not seem to have proper support for this. Even ptrace
> > interface doesn't support stopping internal threads anymore. Same
> > goes for SIGSTOP processing; there simply are no clean ways to
> > make it thread specific (as far as I know).
> Neither of those should be true unless your kernel is broken.
> You can PTRACE_ATTACH to a tid - use gettid not getpid of course
This used to work from within the process up to 2.6.14 I think,
I've yet to see it work since then. Last time this was discussed
on LKML concluded that this will probably not be fixed any time
soon. But I'll double check this with the latest.
> - and
> you can send SIGSTOP to one thread with tkill.
> The latter will definitely deliver SIGSTOP to the selected thread.
> But it may still stop the whole process, I'm not actually sure.
SIGSTOP stops everything, including the dumping thread. Look
at do_signal_stop. It works for any other signal though.
> > Added functions are being made local. I take it this is due to
> > symbol versioning magic? Weak symbols seem to be missing as well
> > even though they are defined in the code.
> You need to add it to Versions.
Thanks, will look into this.