Browse Source

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.
gdt 16 years ago
parent
commit
b779713177
2 changed files with 14 additions and 1 deletions
  1. 6 0
      lib/ChangeLog
  2. 8 1
      lib/sigevent.c

+ 6 - 0
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 

+ 8 - 1
lib/sigevent.c

@@ -61,8 +61,15 @@ quagga_signal_timer (struct thread *t)
 
   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!");