The solution is to make all such signals specific, then the ptracer (gdb)
can filter the signal and upon continuation it's being handled properly
(or put on the shared signal queue). SIGKILL and SIGSTOP are an exception.
The patch only affects threaded and ptrace-d processes.
Ingo
--- linux/kernel/signal.c.orig 2002-12-12 13:28:09.000000000 +0100
+++ linux/kernel/signal.c 2002-12-12 13:26:03.000000000 +0100
@@ -939,7 +947,8 @@
if (sig_ignored(p, sig))
goto out_unlock;
- if (sig_kernel_specific(sig))
+ if (sig_kernel_specific(sig) ||
+ ((p->ptrace & PT_PTRACED) && !sig_kernel_only(sig)))
goto out_send;
/* Does any of the threads unblock the signal? */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/