Implement error header
This commit is contained in:
parent
eb0ca60aa1
commit
a20acf4031
50
srv/error.h
Normal file
50
srv/error.h
Normal 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_
|
||||
|
||||
Loading…
Reference in New Issue
Block a user