2004-07-13  Greg Troxel  <gdt@poblano.ir.bbn.com>

	* sigevent.c: Don't block SIGTRAP and SIGKILL.  Blocking SIGTRAP
	confuses gdb, at least on NetBSD 2.0_BETA, where the block
	succeeds.
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 6bb039d..108a202 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,9 @@
+2004-07-13  Greg Troxel  <gdt@poblano.ir.bbn.com>
+
+	* sigevent.c: Don't block SIGTRAP and SIGKILL.  Blocking SIGTRAP
+	confuses gdb, at least on NetBSD 2.0_BETA, where the block
+	succeeds.
+
 2004-07-09 Paul Jakma <paul@dishone.st>
 
 	* Merge Kunihiro's 'show route-map' change and add 
diff --git a/lib/sigevent.c b/lib/sigevent.c
index fa5edf4..6a2fd80 100644
--- a/lib/sigevent.c
+++ b/lib/sigevent.c
@@ -61,8 +61,15 @@
 
   sigm = THREAD_ARG (t);
   
-  /* block all signals */
+  /*
+   * Block most signals, but be careful not to defer SIGTRAP because
+   * doing so breaks gdb, at least on NetBSD 2.0.  Avoid asking to
+   * block SIGKILL, just because we shouldn't be able to do so.
+   */
   sigfillset (&newmask);
+  sigdelset (&newmask, SIGTRAP);
+  sigdelset (&newmask, SIGKILL);
+
   if ( (sigprocmask (SIG_BLOCK, &newmask, &oldmask)) < 0)
     {
       zlog_err ("quagga_signal_timer: couldnt block signals!");