mirror of
https://github.com/fluencelabs/redis
synced 2025-05-12 18:57:14 +00:00
Merge pull request #346 from pietern/2.4-segv
Force SIGSEGV without HAVE_BACKTRACE (2.4)
This commit is contained in:
commit
9f50ce0d8d
@ -25,7 +25,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Test for backtrace() */
|
/* Test for backtrace() */
|
||||||
#if defined(__APPLE__) || defined(__linux__)
|
#if defined(__APPLE__) || defined(__linux__) || defined(__sun)
|
||||||
#define HAVE_BACKTRACE 1
|
#define HAVE_BACKTRACE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -359,7 +359,9 @@ void redisLogObjectDebugInfo(robj *o) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _redisAssert(char *estr, char *file, int line) {
|
void _redisAssert(char *estr, char *file, int line) {
|
||||||
|
#ifdef HAVE_BACKTRACE
|
||||||
bugReportStart();
|
bugReportStart();
|
||||||
|
#endif
|
||||||
redisLog(REDIS_WARNING,"=== ASSERTION FAILED ===");
|
redisLog(REDIS_WARNING,"=== ASSERTION FAILED ===");
|
||||||
redisLog(REDIS_WARNING,"==> %s:%d '%s' is not true",file,line,estr);
|
redisLog(REDIS_WARNING,"==> %s:%d '%s' is not true",file,line,estr);
|
||||||
#ifdef HAVE_BACKTRACE
|
#ifdef HAVE_BACKTRACE
|
||||||
@ -367,16 +369,18 @@ void _redisAssert(char *estr, char *file, int line) {
|
|||||||
server.assert_file = file;
|
server.assert_file = file;
|
||||||
server.assert_line = line;
|
server.assert_line = line;
|
||||||
redisLog(REDIS_WARNING,"(forcing SIGSEGV to print the bug report.)");
|
redisLog(REDIS_WARNING,"(forcing SIGSEGV to print the bug report.)");
|
||||||
*((char*)-1) = 'x';
|
|
||||||
#endif
|
#endif
|
||||||
|
*((char*)-1) = 'x';
|
||||||
}
|
}
|
||||||
|
|
||||||
void _redisPanic(char *msg, char *file, int line) {
|
void _redisPanic(char *msg, char *file, int line) {
|
||||||
|
#ifdef HAVE_BACKTRACE
|
||||||
bugReportStart();
|
bugReportStart();
|
||||||
|
#endif
|
||||||
redisLog(REDIS_WARNING,"!!! Software Failure. Press left mouse button to continue");
|
redisLog(REDIS_WARNING,"!!! Software Failure. Press left mouse button to continue");
|
||||||
redisLog(REDIS_WARNING,"Guru Meditation: %s #%s:%d",msg,file,line);
|
redisLog(REDIS_WARNING,"Guru Meditation: %s #%s:%d",msg,file,line);
|
||||||
#ifdef HAVE_BACKTRACE
|
#ifdef HAVE_BACKTRACE
|
||||||
redisLog(REDIS_WARNING,"(forcing SIGSEGV in order to print the stack trace)");
|
redisLog(REDIS_WARNING,"(forcing SIGSEGV in order to print the stack trace)");
|
||||||
*((char*)-1) = 'x';
|
|
||||||
#endif
|
#endif
|
||||||
|
*((char*)-1) = 'x';
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user