GDB seems to malfunction after catching a SIGWINCH signal and stepping into the program's SIGWINCH handler. In particular GDB seems to catch an endless stream of SIGTRAPs when attempting to exit the SIGWINCH handler. This behavior can be seen when debugging GDB with GDB: $ gdb gdb (gdb) catch signal SIGWINCH Catchpoint 1 (signal SIGWINCH) (gdb) run Starting program: /scratchpad/binutils-gdb-build/gdb/gdb (gdb) <resize terminal> Catchpoint 1 (signal SIGWINCH), 0x00007ffff6d784f0 in poll () from /lib/x86_64-linux-gnu/libc.so.6 (gdb) step Single stepping until exit from function poll, which has no line number information. rl_sigwinch_handler (sig=28) at /home/patrick/code/binutils-gdb/readline/signals.c:246 246 { (gdb) next 259 RL_SETSTATE(RL_STATE_SIGHANDLER); (gdb) finish Run till exit from #0 rl_sigwinch_handler (sig=28) at /home/patrick/code/binutils-gdb/readline/signals.c:246 Program received signal SIGTRAP, Trace/breakpoint trap. rl_sigwinch_handler (sig=28) at /home/patrick/code/binutils-gdb/readline/signals.c:260 260 rl_resize_terminal (); (gdb) finish Run till exit from #0 rl_sigwinch_handler (sig=28) at /home/patrick/code/binutils-gdb/readline/signals.c:260 Program received signal SIGTRAP, Trace/breakpoint trap. rl_resize_terminal () at /home/patrick/code/binutils-gdb/readline/terminal.c:364 364 { (gdb) <ad infinitum..>
This is a kernel bug. *** This bug has been marked as a duplicate of bug 17511 ***