backtrace support removed: unreliable stack trace :(

This commit is contained in:
antirez 2009-06-04 16:50:24 +02:00
parent 7f957c925b
commit b5ff27084f
2 changed files with 1 additions and 16 deletions

View File

@ -3,7 +3,7 @@
# This file is released under the BSD license, see the COPYING file
DEBUG?= -g
CFLAGS?= -std=c99 -pedantic -O -Wall -W -DSDS_ABORT_ON_OOM
CFLAGS?= -std=c99 -pedantic -O2 -Wall -W -DSDS_ABORT_ON_OOM
CCOPT= $(CFLAGS)
OBJ = adlist.o ae.o anet.o dict.o redis.o sds.o zmalloc.o lzf_c.o lzf_d.o pqsort.o

15
redis.c
View File

@ -315,7 +315,6 @@ static time_t getExpire(redisDb *db, robj *key);
static int setExpire(redisDb *db, robj *key, time_t when);
static void updateSalvesWaitingBgsave(int bgsaveerr);
static void freeMemoryIfNeeded(void);
static void onSigsegv(int sig);
static void authCommand(redisClient *c);
static void pingCommand(redisClient *c);
@ -894,8 +893,6 @@ static void initServer() {
signal(SIGHUP, SIG_IGN);
signal(SIGPIPE, SIG_IGN);
signal(SIGSEGV, onSigsegv);
signal(SIGBUS, onSigsegv);
server.clients = listCreate();
server.slaves = listCreate();
@ -4064,18 +4061,6 @@ static void debugCommand(redisClient *c) {
}
}
static void onSigsegv(int sig) {
void *trace[25];
int n = backtrace(trace, 25);
char **symbols = backtrace_symbols(trace, n);
redisLog(REDIS_WARNING,"Got %s!!! Redis crashed, backtrace:",
sig == SIGSEGV ? "SIGSEGV" : "SIGBUS");
for (int i = 0; i < n; i++)
redisLog(REDIS_WARNING,symbols[i]);
exit(1);
}
/* =================================== Main! ================================ */
#ifdef __linux__