diff options
author | Denys Vlasenko <dvlasenk@redhat.com> | 2011-04-20 18:26:13 +0200 |
---|---|---|
committer | Denys Vlasenko <dvlasenk@redhat.com> | 2011-04-20 18:26:13 +0200 |
commit | d639f1b6a84f1fbf62f0d528efce3da181da0af0 (patch) | |
tree | cb2645892dca6769e58abe26c9353a50610d0624 /src/hooks/abrt-hook-ccpp.c | |
parent | 0274b29916883efac50e0961c0a3b49ce8a11f1f (diff) | |
download | abrt-d639f1b6a84f1fbf62f0d528efce3da181da0af0.tar.gz abrt-d639f1b6a84f1fbf62f0d528efce3da181da0af0.tar.xz abrt-d639f1b6a84f1fbf62f0d528efce3da181da0af0.zip |
abrt-hook-ccpp: catch SIGTRAP too. closes #125
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src/hooks/abrt-hook-ccpp.c')
-rw-r--r-- | src/hooks/abrt-hook-ccpp.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c index 84bbf4fa..e2c1b373 100644 --- a/src/hooks/abrt-hook-ccpp.c +++ b/src/hooks/abrt-hook-ccpp.c @@ -420,7 +420,7 @@ int main(int argc, char** argv) /* Open a fd to compat coredump, if requested and is possible */ int user_core_fd = -1; if (setting_MakeCompatCore && ulimit_c != 0) - /* note: checks "user_pwd == NULL" inside, updates core_basename */ + /* note: checks "user_pwd == NULL" inside; updates core_basename */ user_core_fd = open_user_core(user_pwd, uid, pid, &argv[2]); if (executable == NULL) @@ -431,7 +431,6 @@ int main(int argc, char** argv) } const char *signame = NULL; - /* Tried to use array for this but C++ does not support v[] = { [IDX] = "str" } */ switch (signal_no) { case SIGILL : signame = "ILL" ; break; @@ -439,9 +438,12 @@ int main(int argc, char** argv) case SIGSEGV: signame = "SEGV"; break; case SIGBUS : signame = "BUS" ; break; //Bus error (bad memory access) case SIGABRT: signame = "ABRT"; break; //usually when abort() was called + // We have real-world reports from users who see buggy programs + // dying with SIGTRAP, uncommented it too: + case SIGTRAP: signame = "TRAP"; break; //Trace/breakpoint trap + // These usually aren't caused by bugs: //case SIGQUIT: signame = "QUIT"; break; //Quit from keyboard //case SIGSYS : signame = "SYS" ; break; //Bad argument to routine (SVr4) - //case SIGTRAP: signame = "TRAP"; break; //Trace/breakpoint trap //case SIGXCPU: signame = "XCPU"; break; //CPU time limit exceeded (4.2BSD) //case SIGXFSZ: signame = "XFSZ"; break; //File size limit exceeded (4.2BSD) default: goto create_user_core; // not a signal we care about |