From: antirez Date: Thu, 4 Jun 2009 14:50:24 +0000 (+0200) Subject: backtrace support removed: unreliable stack trace :( X-Git-Url: https://git.saurik.com/redis.git/commitdiff_plain/b5ff27084f593f64d47337c5f47ea3bf76c63a5a backtrace support removed: unreliable stack trace :( --- diff --git a/Makefile b/Makefile index 1d4b4e74..00c0f226 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/redis.c b/redis.c index 3a9cfc60..a8b5e2f2 100644 --- a/redis.c +++ b/redis.c @@ -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__