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@ir.bbn.com>
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@ir.bbn.com>