Implement error header

This commit is contained in:
Steins7 2024-04-20 15:20:18 +02:00
parent eb0ca60aa1
commit a20acf4031

50
srv/error.h Normal file
View File

@ -0,0 +1,50 @@
/** @file error.h
* Module providing error handling macros
*
* The module implements the assert macro intended to allow catching critical
* errors during debug while having no influence in the release code as well as
* multiple tool macros to handles other kinds of errors
*/
#ifndef _ERROR_H_
#define _ERROR_H_
//--includes--------------------------------------------------------------------
#include "debug.h"
#define ERROR_ASSERT 1
//--type definitions------------------------------------------------------------
#define error_to_string(arg) #arg
#if ERROR_ASSERT
#define error_assert(cond) \
do { \
if (!(cond)) { \
debug_error("%s:l%u:%s: %s", __FILE__, __LINE__, __func__, \
error_to_string(cond)); \
while (true) {} \
} \
} while (0)
#else
#define error_assert(cond) do {} while (0)
#endif
#if ERROR_ASSERT
#define error_trigger(msg, ...) \
do { \
debug_error(msg __VA_OPT__(,) __VA_ARGS__); \
while (true) {} \
} while (0)
#else
#define error_trigger(msg) do {} while (0)
#endif
//--functions-------------------------------------------------------------------
#endif //_ERROR_H_