57 lines
790 B
C
57 lines
790 B
C
/*
|
|
* debbase.h - Base debug macros and their retail translations.
|
|
*/
|
|
|
|
|
|
/* Macros
|
|
*********/
|
|
|
|
/* debug assertion macro */
|
|
|
|
/*
|
|
* ASSERT() may only be used as a statement, not as an expression.
|
|
*
|
|
* E.g.,
|
|
*
|
|
* ASSERT(pszRest);
|
|
*/
|
|
|
|
#ifdef DEBUG
|
|
|
|
#define ASSERT(exp) \
|
|
if (exp) \
|
|
; \
|
|
else \
|
|
ERROR_OUT(("assertion failed '%s'", (PCSTR)#exp))
|
|
|
|
#else
|
|
|
|
#define ASSERT(exp)
|
|
|
|
#endif /* DEBUG */
|
|
|
|
/* debug evaluation macro */
|
|
|
|
/*
|
|
* EVAL() may only be used as a logical expression.
|
|
*
|
|
* E.g.,
|
|
*
|
|
* if (EVAL(exp))
|
|
* bResult = TRUE;
|
|
*/
|
|
|
|
#ifdef DEBUG
|
|
|
|
#define EVAL(exp) \
|
|
((exp) || \
|
|
(ERROR_OUT(("evaluation failed '%s'", (PCSTR)#exp)), 0))
|
|
|
|
#else
|
|
|
|
#define EVAL(exp) \
|
|
((exp) != 0)
|
|
|
|
#endif /* DEBUG */
|
|
|