summaryrefslogtreecommitdiffstats
path: root/src/hooks
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2011-04-20 18:26:13 +0200
committerDenys Vlasenko <dvlasenk@redhat.com>2011-04-20 18:26:13 +0200
commitd639f1b6a84f1fbf62f0d528efce3da181da0af0 (patch)
treecb2645892dca6769e58abe26c9353a50610d0624 /src/hooks
parent0274b29916883efac50e0961c0a3b49ce8a11f1f (diff)
downloadabrt-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')
-rw-r--r--src/hooks/abrt-hook-ccpp.c8
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