Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 31 Dec 2000 18:55:41 +0200
From:      User Sja <sakari.jalovaara@eqonline.fi>
To:        freebsd-current@freebsd.org
Subject:   PROCTREE_LOCK() vs. gdb hang
Message-ID:  <3A4F650D.3212A5C5@eqonline.fi>

next in thread | raw e-mail | index | archive | help
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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A4F650D.3212A5C5>