提交 a0dc1e69 编写于 作者: P Pieter Noordhuis

Also force SIGSEGV without HAVE_BACKTRACE

上级 246c4c23
...@@ -359,7 +359,9 @@ void redisLogObjectDebugInfo(robj *o) { ...@@ -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) { ...@@ -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';
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册