Allow not saving the signal state in SIGSETJMP
authorChristian Biesinger <cbiesinger@google.com>
Tue, 15 Oct 2019 15:02:33 +0000 (10:02 -0500)
committerChristian Biesinger <cbiesinger@google.com>
Wed, 16 Oct 2019 21:13:43 +0000 (16:13 -0500)
commit17bfe554b9a8c57c4d377bce930046138298fd8b
tree07bfdba2d06de217e3774ce60dabd8d22e38e675
parent950b74950f6020eda38647f22e9077ac7f68ca49
Allow not saving the signal state in SIGSETJMP

Saving the signal state is very slow (this patch is a 14% speedup).  The
reason we need this code is because signal handler will leave the
signal blocked when we longjmp out of it.  But in this case we can
just manually unblock the signal instead of taking the unconditional
perf hit.

gdb/ChangeLog:

2019-10-16  Christian Biesinger  <cbiesinger@google.com>

* gdbsupport/gdb_setjmp.h (SIGSETJMP): Allow passing in the value to
pass on to sigsetjmp's second argument.
* cp-support.c (gdb_demangle): Unblock SIGSEGV if we caught a crash.

Change-Id: Ib3010966050c64b4cc8b47d8cb45871652b0b3ea
gdb/ChangeLog
gdb/cp-support.c
gdb/gdbsupport/gdb_setjmp.h