aboutsummaryrefslogtreecommitdiff
path: root/gdb/configure.ac
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/configure.ac
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/configure.ac')
-rw-r--r--gdb/configure.ac2
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 138fc85..a2ac15f 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1328,7 +1328,7 @@ AC_CHECK_FUNCS([canonicalize_file_name realpath getrusage getuid getgid \
sigaction sigprocmask sigsetmask socketpair \
ttrace wborder wresize setlocale iconvlist libiconvlist btowc \
setrlimit getrlimit posix_madvise waitpid lstat \
- ptrace64])
+ ptrace64 sigaltstack])
AM_LANGINFO_CODESET
GDB_AC_COMMON