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