aboutsummaryrefslogtreecommitdiff
path: root/gdb/ChangeLog
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/ChangeLog
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/ChangeLog')
-rw-r--r--gdb/ChangeLog23
1 files changed, 23 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8e0de8a..84563c3 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,28 @@
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.
+
+2014-06-19 Gary Benson <gbenson@redhat.com>
+
* utils.h (resource_limit_kind): New enum.
(can_dump_core): New declaration.
(warn_cant_dump_core): Likewise.