[Converted from Gnats 116] ``(gdb) catch signal SIGNAL'' Overlaps with ``handle SIGNAL'' but the implied behavior is different. You can attach commands to a catch but not a handle. A handle has a limited number of hardwired actions. Release: unknown
*** Bug 8903 has been marked as a duplicate of this bug. ***
*** Bug 10588 has been marked as a duplicate of this bug. ***
An incomplete, but functional patch is at: http://sourceware.org/ml/gdb-patches/2011-09/msg00164.html
I picked up Pedro's patch and am working on it.
CVSROOT: /cvs/src Module name: src Changes by: tromey@sourceware.org 2013-01-16 17:31:41 Modified files: gdb : ChangeLog Makefile.in NEWS breakpoint.c breakpoint.h inferior.h infrun.c gdb/doc : ChangeLog gdb.texinfo gdb/testsuite : ChangeLog Added files: gdb : break-catch-sig.c gdb/testsuite/gdb.base: catch-signal.c catch-signal.exp Log message: 2013-01-03 Pedro Alves <palves@redhat.com> Tom Tromey <tromey@redhat.com> PR cli/7221: * NEWS: Add "catch signal". * breakpoint.c (base_breakpoint_ops): No longer static. (bpstat_explains_signal): New function. (init_catchpoint): No longer static. (base_breakpoint_explains_signal): New function. (base_breakpoint_ops): Initialize new field. * breakpoint.h (enum bpstat_signal_value): New. (struct breakpoint_ops) <explains_signal>: New field. (bpstat_explains_signal): Remove macro, declare as function. (base_breakpoint_ops, init_catchpoint): Declare. * break-catch-sig.c: New file. * inferior.h (signal_catch_update): Declare. * infrun.c (signal_catch): New global. (handle_syscall_event): Update for change to bpstat_explains_signal. (handle_inferior_event): Likewise. Always handle random signals via bpstats. (signal_cache_update): Check signal_catch. (signal_catch_update): New function. (_initialize_infrun): Initialize signal_catch. * Makefile.in (SFILES): Add break-catch-sig.c. (COMMON_OBS): Add break-catch-sig.o. gdb/doc * gdb.texinfo (Set Catchpoints): Document "catch signal". (Signals): Likewise. gdb/testsuite * gdb.base/catch-signal.c: New file. * gdb.base/catch-signal.exp: New file. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/break-catch-sig.c.diff?cvsroot=src&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.15021&r2=1.15022 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/Makefile.in.diff?cvsroot=src&r1=1.1228&r2=1.1229 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/NEWS.diff?cvsroot=src&r1=1.562&r2=1.563 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/breakpoint.c.diff?cvsroot=src&r1=1.734&r2=1.735 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/breakpoint.h.diff?cvsroot=src&r1=1.191&r2=1.192 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/inferior.h.diff?cvsroot=src&r1=1.183&r2=1.184 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/infrun.c.diff?cvsroot=src&r1=1.571&r2=1.572 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/doc/ChangeLog.diff?cvsroot=src&r1=1.1403&r2=1.1404 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/doc/gdb.texinfo.diff?cvsroot=src&r1=1.1041&r2=1.1042 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/ChangeLog.diff?cvsroot=src&r1=1.3509&r2=1.3510 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.base/catch-signal.c.diff?cvsroot=src&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/testsuite/gdb.base/catch-signal.exp.diff?cvsroot=src&r1=NONE&r2=1.1
Committed.