Sometimes, glibc aborts when some assertion is not met. In that case,
we want to have a coredump, so do not ignore that signal when
debugging is enabled.
---
child.c | 1 +
signals.c | 4 +++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/child.c b/child.c
index 74c72e124a86..8351d8eb6706 100644
--- a/child.c
+++ b/child.c
@@ -35,6 +35,7 @@ static void disable_coredumps(void)
struct rlimit limit;
if (debug == TRUE) {
+ (void)signal(SIGABRT, SIG_DFL);
(void)signal(SIGSEGV, SIG_DFL);
return;
}
diff --git a/signals.c b/signals.c
index 94c690bc6ffc..a6cac95aa2ba 100644
--- a/signals.c
+++ b/signals.c
@@ -82,8 +82,10 @@ void mask_signals_child(void)
(void)signal(i, SIG_IGN);
/* If we are in debug mode, we want segfaults and core dumps */
- if (debug == TRUE)
+ if (debug == TRUE) {
+ (void)signal(SIGABRT, SIG_DFL);
(void)signal(SIGSEGV, SIG_DFL);
+ }
/* trap ctrl-c */
(void)signal(SIGINT, ctrlc_handler);
--
1.8.5.2
--
To unsubscribe from this list: send the line "unsubscribe trinity" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html