aboutsummaryrefslogtreecommitdiff
path: root/gdb/config.in
diff options
context:
space:
mode:
authorGary Benson <gbenson@redhat.com>2014-06-19 09:13:57 +0100
committerGary Benson <gbenson@redhat.com>2014-06-19 09:13:57 +0100
commit992c7d700f99002ed455b0588488e0e42719ba81 (patch)
treec24351fbcff74f41550b27263995ec03be1988ed /gdb/config.in
parenteae7090bea9d7f129be7dddf89f8e177cdb2003d (diff)
downloadgdb-992c7d700f99002ed455b0588488e0e42719ba81.zip
gdb-992c7d700f99002ed455b0588488e0e42719ba81.tar.gz
gdb-992c7d700f99002ed455b0588488e0e42719ba81.tar.bz2
Demangler crash handler
This commit wraps calls to the demangler with a segmentation fault handler. The first time a segmentation fault is caught a core file is generated and the user is prompted to file a bug and offered the choice to exit or to continue their GDB session. A maintainence option is provided to allow the user to disable the crash handler if required. gdb/ 2014-06-19 Gary Benson <gbenson@redhat.com> * configure.ac [AC_CHECK_FUNCS] <sigaltstack>: New check. * configure: Regenerate. * config.in: Likewise. * main.c (signal.h): New include. (setup_alternate_signal_stack): New function. (captured_main): Call the above. * cp-support.c (signal.h): New include. (catch_demangler_crashes): New flag. (SIGJMP_BUF): New define. (SIGSETJMP): Likewise. (SIGLONGJMP): Likewise. (gdb_demangle_jmp_buf): New static global. (gdb_demangle_attempt_core_dump): Likewise. (gdb_demangle_signal_handler): New function. (gdb_demangle): If catch_demangler_crashes is set, install the above signal handler before calling bfd_demangle, and restore the original signal handler afterwards. Display the offending symbol and call demangler_warning the first time a segmentation fault is caught. (_initialize_cp_support): New maint set/show command. gdb/doc/ 2014-06-19 Gary Benson <gbenson@redhat.com> * gdb.texinfo (Maintenance Commands): Document new "maint set/show catch-demangler-crashes" option.
Diffstat (limited to 'gdb/config.in')
-rw-r--r--gdb/config.in3
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/config.in b/gdb/config.in
index cd4ce92..8585b49 100644
--- a/gdb/config.in
+++ b/gdb/config.in
@@ -366,6 +366,9 @@
/* Define to 1 if you have the `sigaction' function. */
#undef HAVE_SIGACTION
+/* Define to 1 if you have the `sigaltstack' function. */
+#undef HAVE_SIGALTSTACK
+
/* Define to 1 if you have the <signal.h> header file. */
#undef HAVE_SIGNAL_H