I don't really know my way around the kernel so I'm just guessing here:
Is there a proctree lock release operation missing in kern_sig.c,
function issignal()? There seems to be one lock operation more
than there are release operations. I tried putting one in and
now gdb doesn't hang the whole machine (at least as easily as
before.)
#kern (sja@tilli) 112> cvs diff -u kern_sig.c
Index: kern_sig.c
===================================================================
RCS file: /usr/cvs/src/sys/kern/kern_sig.c,v
retrieving revision 1.98
diff -u -r1.98 kern_sig.c
--- kern_sig.c 2000/12/23 19:43:09 1.98
+++ kern_sig.c 2000/12/31 16:01:45
@@ -1311,6 +1311,7 @@
PROCTREE_LOCK(PT_SHARED);
} while (!trace_req(p)
&& p->p_flag & P_TRACED);
+ PROCTREE_LOCK(PT_RELEASE);
/*
* If the traced bit got turned off, go back up
++sja
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message