2019-02-25 08:48:22 -05:00
|
|
|
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
2013-08-28 02:18:58 -04:00
|
|
|
|
|
|
|
|
#ifndef DEBUG_H
|
|
|
|
|
#define DEBUG_H
|
|
|
|
|
|
2014-05-25 10:23:35 -04:00
|
|
|
#include "i2-base.hpp"
|
2013-08-28 02:18:58 -04:00
|
|
|
|
2014-12-19 06:19:28 -05:00
|
|
|
#ifndef I2_DEBUG
|
2013-08-29 03:04:33 -04:00
|
|
|
# define ASSERT(expr) ((void)0)
|
2014-12-19 06:19:28 -05:00
|
|
|
#else /* I2_DEBUG */
|
2025-11-17 10:55:55 -05:00
|
|
|
# define ASSERT(expr) ((expr) ? void(0) : icinga_assert_fail(#expr, __FILE__, __LINE__))
|
2014-12-19 06:19:28 -05:00
|
|
|
#endif /* I2_DEBUG */
|
2013-08-28 02:18:58 -04:00
|
|
|
|
2025-11-17 10:55:55 -05:00
|
|
|
#define VERIFY(expr) ((expr) ? void(0) : icinga_assert_fail(#expr, __FILE__, __LINE__))
|
2013-08-28 02:18:58 -04:00
|
|
|
|
2025-11-17 10:55:55 -05:00
|
|
|
#define ABORT(expr) icinga_assert_fail(#expr, __FILE__, __LINE__)
|
2013-10-26 03:41:45 -04:00
|
|
|
|
2025-11-17 10:55:55 -05:00
|
|
|
[[noreturn]] inline void icinga_assert_fail(const char *expr, const char *file, int line) noexcept(true)
|
2013-08-28 02:18:58 -04:00
|
|
|
{
|
|
|
|
|
fprintf(stderr, "%s:%d: assertion failed: %s\n", file, line, expr);
|
2014-09-02 07:02:22 -04:00
|
|
|
std::abort();
|
2013-08-28 02:18:58 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif /* DEBUG_H */
|