mirror of https://gitee.com/bigwinds/arangodb
fix assertions in non-maintainer mode
This commit is contained in:
parent
318cdb8365
commit
2a63d04289
|
@ -177,22 +177,23 @@ static inline uint32_t TRI_64to32(uint64_t x) {
|
|||
/// @brief asserts
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef TRI_ASSERT
|
||||
|
||||
#ifdef ARANGODB_ENABLE_MAINTAINER_MODE
|
||||
|
||||
#ifndef TRI_ASSERT
|
||||
#define TRI_ASSERT(expr) \
|
||||
do { \
|
||||
if (!(expr)) { \
|
||||
TRI_FlushDebugging(__FILE__, __LINE__, #expr); \
|
||||
TRI_PrintBacktrace(); \
|
||||
assert(expr); \
|
||||
std::abort(); \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifndef TRI_ASSERT
|
||||
#define TRI_ASSERT(expr) do { } while (0)
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -396,3 +396,23 @@ void TRI_PrintBacktrace() {
|
|||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief flushes the logger and shuts it down
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void TRI_FlushDebugging() {
|
||||
Logger::flush();
|
||||
Logger::shutdown(true);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief flushes the logger and shuts it down
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void TRI_FlushDebugging(char const* file, int line, char const* message) {
|
||||
LOG(FATAL) << "assertion failed in " << file << ":" << line << ": " << message;
|
||||
Logger::flush();
|
||||
Logger::shutdown(true);
|
||||
}
|
||||
|
||||
|
|
|
@ -140,6 +140,13 @@ void TRI_InitializeDebugging(void);
|
|||
|
||||
void TRI_ShutdownDebugging(void);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief flushes the logger and shuts it down
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void TRI_FlushDebugging();
|
||||
void TRI_FlushDebugging(char const* file, int line, char const* message);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
/// @brief dump vector contents to an ostream
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
Loading…
Reference in New Issue