diff options
author | Tharre <tharre3@gmail.com> | 2014-12-05 08:52:50 +0100 |
---|---|---|
committer | Tharre <tharre3@gmail.com> | 2014-12-05 08:52:50 +0100 |
commit | b8ffd5621f5495b0ad1a92a67b51b7e0e15b0b6e (patch) | |
tree | 991917a3be44acfed12922162f7f7443f4d919f7 /src/dbg.h | |
parent | 622bdcb7e36498b2bfdc193b00cf690a6a11512b (diff) | |
download | redo-b8ffd5621f5495b0ad1a92a67b51b7e0e15b0b6e.tar.gz redo-b8ffd5621f5495b0ad1a92a67b51b7e0e15b0b6e.tar.xz redo-b8ffd5621f5495b0ad1a92a67b51b7e0e15b0b6e.zip |
Improve error message handling for debugging
Diffstat (limited to 'src/dbg.h')
-rw-r--r-- | src/dbg.h | 15 |
1 files changed, 12 insertions, 3 deletions
@@ -21,7 +21,18 @@ /* helper functions which help in replacing the GNU extension ##__VA_ARGS__ */ #define STRINGIFY(x) #x -#define LOG_HELPER(f,l,...) fprintf(stderr, "("f":"STRINGIFY(l)"): "__VA_ARGS__) +#define PREFIX(...) PREFIX_HELPER(_FILENAME, __LINE__, __VA_ARGS__) +#define SUFFIX(S, M, ...) M S, __VA_ARGS__ + +#define log_err(...) fprintf(stderr, PREFIX(__VA_ARGS__)) +#define die(...) die_(PREFIX(__VA_ARGS__)) +#define fatal(...) die(SUFFIX(": %s\n", __VA_ARGS__, strerror(errno))) + +#ifdef NDEBUG +#define PREFIX_HELPER(f,l,...) __VA_ARGS__ +#else +#define PREFIX_HELPER(f,l,...) "(" f ":" STRINGIFY(l) "): " __VA_ARGS__ +#endif #ifdef NDEBUG #define debug(...) @@ -29,8 +40,6 @@ #define debug(...) log_err(__VA_ARGS__) #endif -#define log_err(...) LOG_HELPER(_FILENAME, __LINE__, __VA_ARGS__) - #define assert_str_equal(a,b) ({ \ if (strcmp(a, b)) { \ log_err("Assertion error: '%s' == '%s'\n", a, b); \ |