Skip to content

Commit

Permalink
Merge pull request #346 from pietern/2.4-segv
Browse files Browse the repository at this point in the history
Force SIGSEGV without HAVE_BACKTRACE (2.4)
  • Loading branch information
antirez committed Feb 21, 2012
2 parents 246c4c2 + c39b869 commit 9f50ce0
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/config.h
Expand Up @@ -25,7 +25,7 @@
#endif

/* Test for backtrace() */
#if defined(__APPLE__) || defined(__linux__)
#if defined(__APPLE__) || defined(__linux__) || defined(__sun)
#define HAVE_BACKTRACE 1
#endif

Expand Down
8 changes: 6 additions & 2 deletions src/debug.c
Expand Up @@ -359,24 +359,28 @@ void redisLogObjectDebugInfo(robj *o) {
}

void _redisAssert(char *estr, char *file, int line) {
#ifdef HAVE_BACKTRACE
bugReportStart();
#endif
redisLog(REDIS_WARNING,"=== ASSERTION FAILED ===");
redisLog(REDIS_WARNING,"==> %s:%d '%s' is not true",file,line,estr);
#ifdef HAVE_BACKTRACE
server.assert_failed = estr;
server.assert_file = file;
server.assert_line = line;
redisLog(REDIS_WARNING,"(forcing SIGSEGV to print the bug report.)");
*((char*)-1) = 'x';
#endif
*((char*)-1) = 'x';
}

void _redisPanic(char *msg, char *file, int line) {
#ifdef HAVE_BACKTRACE
bugReportStart();
#endif
redisLog(REDIS_WARNING,"!!! Software Failure. Press left mouse button to continue");
redisLog(REDIS_WARNING,"Guru Meditation: %s #%s:%d",msg,file,line);
#ifdef HAVE_BACKTRACE
redisLog(REDIS_WARNING,"(forcing SIGSEGV in order to print the stack trace)");
*((char*)-1) = 'x';
#endif
*((char*)-1) = 'x';
}

0 comments on commit 9f50ce0

Please sign in to comment.