0001-Disable-crashhandler-if-coredumps-are-enabled.patch
src/common/quassel.cpp | ||
---|---|---|
22 | 22 | |
23 | 23 |
#include <iostream> |
24 | 24 |
#include <signal.h> |
25 |
#ifndef Q_OS_WIN32 |
|
26 |
#include <sys/resource.h> |
|
27 |
#endif |
|
25 | 28 | |
26 | 29 |
#include <QCoreApplication> |
27 | 30 |
#include <QDateTime> |
... | ... | |
55 | 58 |
// we have crashhandler for win32 and unix (based on execinfo). |
56 | 59 |
// on mac os we use it's integrated backtrace generator |
57 | 60 |
#if defined(Q_OS_WIN32) || (defined(HAVE_EXECINFO) && !defined(Q_OS_MAC)) |
58 |
signal(SIGABRT, handleSignal); |
|
59 |
signal(SIGSEGV, handleSignal); |
|
60 |
# ifndef Q_OS_WIN32 |
|
61 |
signal(SIGBUS, handleSignal); |
|
62 |
# endif |
|
61 | ||
62 |
# ifndef Q_OS_WIN32 |
|
63 |
// we only handle crashes ourselves if coredumps are disabled |
|
64 |
struct rlimit *limit = (rlimit *) malloc(sizeof(struct rlimit)); |
|
65 |
int rc = getrlimit(RLIMIT_CORE, limit); |
|
66 | ||
67 |
if ( rc == -1 || !((long)limit->rlim_cur > 0 || limit->rlim_cur == RLIM_INFINITY) ) { |
|
68 |
# endif |
|
69 |
signal(SIGABRT, handleSignal); |
|
70 |
signal(SIGSEGV, handleSignal); |
|
71 |
# ifndef Q_OS_WIN32 |
|
72 |
signal(SIGBUS, handleSignal); |
|
73 |
} |
|
74 |
free(limit); |
|
75 |
# endif |
|
76 | ||
63 | 77 |
#endif |
64 | 78 |
} |
65 | 79 | |
66 |
- |