From e062ca046ba15d782093ad88312810ee62df272e Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Sun, 25 Apr 2004 19:37:39 +0000 Subject: [PATCH] Add a tor_assert macro that logs failed assertions. svn:r1695 --- src/common/util.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/common/util.h b/src/common/util.h index 73627f714f..b0120e7d37 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -40,6 +40,18 @@ #define INLINE inline #endif +#ifdef NDEBUG +#define tor_assert(expr) do {} while(0) +#else +#define tor_assert(expr) do { \ + if (!(expr)) { \ + log(LOG_ERR, "%s:%d: %s: Assertion %s failed; aborting.", \ + __FILE__, __LINE__, __FUNCTION__, #expr); \ + assert(expr); /* write to console too. */ \ + abort(); /* unreached */ \ + } } while (0) +#endif + /* legal characters in a filename */ #define CONFIG_LEGAL_FILENAME_CHARACTERS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_/" -- 2.47.3