From 0e844bc15a212d0e933b6243a9a9964ab7925c4f Mon Sep 17 00:00:00 2001 From: John Hodge Date: Wed, 10 Jul 2013 20:19:18 +0800 Subject: [PATCH] Kernel/logdebug - More useful asserts --- KernelLand/Kernel/include/logdebug.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/KernelLand/Kernel/include/logdebug.h b/KernelLand/Kernel/include/logdebug.h index c2faf7d2..c5337439 100644 --- a/KernelLand/Kernel/include/logdebug.h +++ b/KernelLand/Kernel/include/logdebug.h @@ -58,10 +58,16 @@ extern void Debug_HexDump(const char *Header, const void *Data, size_t Length); # define LEAVE_RET0() return #endif #if !DISABLE_ASSERTS -# define ASSERT(expr) do{if(!(expr))Panic("%s:%i - %s: Assertion '"#expr"' failed",__FILE__,__LINE__,(char*)__func__);}while(0) +# define ASSERTV(expr,msg,args...) do{if(!(expr))Panic("%s:%i - %s: Assertion '"#expr"' failed"msg,__FILE__,__LINE__,(char*)__func__,##args);}while(0) +# define ASSERTRV(expr,rv,msg,args...) do{if(!(expr)){Warning("%s:%i: Assertion '"#expr"' failed"msg,__FILE__,__LINE__,(char*)__func__ , ##args);return rv;}}while(0) #else -# define ASSERT(expr) +# define ASSERTV(expr) +# define ASSERTRV(expr) #endif +#define ASSERT(expr) ASSERTV(expr, "") +#define ASSERTR(expr,rv) ASSERTRV(expr, rv, "") +#define ASSERTC(l,rel,r) ASSERTV(l rel r, ": %i"#rel"%i", l, r) +#define ASSERTCR(l,rel,r,rv) ASSERTRV(l rel r, rv, ": %i"#rel"%i", l, r) /** * \} */ -- 2.20.1