[quagga-dev 1352] signal handling breaks gdb on NetBSD - fixed in CVS

Greg Troxel gdt at ir.bbn.com
Tue Jul 13 14:56:11 BST 2004


Another person at BBN had trouble running gdb on ospfd.  gdb would
intermittently lock up.

After running gdb on gdb, I determined that breakpoints seemed to
occur in the sigprocmask14 system call, not at the requested point.
In lib/sigevent.c:quagga_signal_timer, all signals are blocked while
signal handlers are run.  (I'm not sure why this is necessary, but I'm
probably missing something.)  Even SIGTRAP is blocked, and on NetBSD
2.0_BETA2 this seems to work - even for breakpoints.  The sigprocmask
man page says:

     The system quietly disallows SIGKILL or SIGSTOP to be blocked.

I have committed a change to quagga_signal_timer to refrain from
blocking SIGTRAP.  This should either help people with gdb or be
harmless.

I'm curious if others have had trouble with gdb.

-- 
        Greg Troxel <gdt at ir.bbn.com>



More information about the Quagga-dev mailing list