enable backtrace capabilities only for Linux and MacOSX

This commit is contained in:
antirez 2009-06-07 15:47:59 +02:00
parent 56906eefea
commit e65fdc7838
2 changed files with 17 additions and 0 deletions

View File

@ -1,8 +1,18 @@
2009-06-07 Dump a backtrace on sigsegv/sigbus, original coded thanks to Diego Rosario Brogna, modified in order to work on different OSes and to enhance reliability
2009-06-06 Merge git://github.com/dierbro/redis
2009-06-06 add more output
2009-06-06 store static function pointer for a useful stack trace
2009-06-06 TODO updated
2009-06-06 Makefile dependencies updated
2009-06-05 Avoid a busy loop while sending very large replies against very fast links, this allows to be more responsive with other clients even under a KEY * against the loopback interface
2009-06-05 Kill the background saving process before performing SHUTDOWN to avoid races
2009-06-05 LREM now returns :0 for non existing keys
2009-06-05 - put some order in code - better output
2009-06-05 added config.h for #ifdef business isolation, added fstat64 for Mac OS X
2009-06-04 remove die() :-)
2009-06-04 add compile options to debug
2009-06-04 initial commit print stack trace
2009-06-04 initial commit print stack trace
2009-06-04 macosx specific zmalloc.c, uses malloc_size function in order to avoid to waste memory and time to put an additional header
2009-06-04 DEBUG OBJECT implemented
2009-06-04 backtrace support removed: unreliable stack trace :(

View File

@ -4108,6 +4108,7 @@ static void debugCommand(redisClient *c) {
}
}
#if defined(__APPLE__) || defined(__linux__)
static struct redisFunctionSym symsTable[] = {
{"freeStringObject", (unsigned long)freeStringObject},
{"freeListObject", (unsigned long)freeListObject},
@ -4288,6 +4289,7 @@ static void segvHandler(int sig, siginfo_t *info, void *secret) {
}
static void setupSigSegvAction(void) {
#if defined(__APPLE__) || defined(__linux__)
struct sigaction act;
sigemptyset (&act.sa_mask);
@ -4297,8 +4299,13 @@ static void setupSigSegvAction(void) {
act.sa_sigaction = segvHandler;
sigaction (SIGSEGV, &act, NULL);
sigaction (SIGBUS, &act, NULL);
#else
return;
#endif
}
#endif /* if __APPLE__ or __linux__ */
/* =================================== Main! ================================ */
#ifdef __linux__