From 2a9f015d989f41520dfdaa424bf6f598fa6a7c3c Mon Sep 17 00:00:00 2001 From: Sathishkumar Date: Thu, 5 Sep 2013 12:12:28 +0530 Subject: [PATCH 1/1] [TRACE] Debug Log levels enabled This patch adds debug log levels to libdce. To enable traces, set the DCE_DEBUG_ENABLE. The trace level can be changed by setting DCE_DEBUG_LEVEL= [1/2/3] during compile time. Change-Id: I4bed53cc6e3af938c02221376662318e3a1b8ec4 Signed-off-by: Sathishkumar --- Makefile.am | 3 ++- dce_priv.h | 38 +++++++++++++++++++++++--------------- libdce.c | 2 +- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/Makefile.am b/Makefile.am index 356c4cb..f10122f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -16,7 +16,8 @@ CE_CFLAGS = \ -I$(top_srcdir)/packages/xdais \ -I$(top_srcdir)/packages/xdctools \ -I$(IPC_HEADERS)/ \ - -DBUILDOS_LINUX=1 \ + -DBUILDOS_LINUX=1 -DDCE_DEBUG_LEVEL=1 \ + -DDCE_DEBUG_ENABLE=1 \ -Wno-pointer-to-int-cast diff --git a/dce_priv.h b/dce_priv.h index 7f2624f..70ee4c5 100644 --- a/dce_priv.h +++ b/dce_priv.h @@ -33,28 +33,36 @@ #ifndef __DCE_PRIV_H__ #define __DCE_PRIV_H__ - -#ifdef BUILDOS_QNX -#include - +extern int dce_debug; /********************* MACROS ************************/ /***************** TRACE MACROS *********************/ /* Need to make it OS specific and support different trace levels */ -#define ERROR(FMT, ...) do { \ + +/* set desired trace level: + * 1 - error + * 2 - error, debug + * 3 - error, debug, info (very verbose) + */ +#ifdef DCE_DEBUG_ENABLE +#define ERROR(FMT,...) TRACE(1, "ERROR: " FMT, ##__VA_ARGS__) +#define DEBUG(FMT,...) TRACE(2, "DEBUG: " FMT, ##__VA_ARGS__) +#define INFO(FMT,...) TRACE(3, "INFO: " FMT, ##__VA_ARGS__) +#else +#define ERROR(FMT,...) +#define DEBUG(FMT,...) +#define INFO(FMT,...) +#endif + +#ifdef BUILDOS_QNX +#include +#define TRACE(lvl,FMT, ...) do if ((lvl) <= dce_debug) { \ slogf(42, _SLOG_INFO, "%s:%d:\t%s\terror: " FMT, __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__); \ } while( 0 ) -#define DEBUG(FMT, ...) do { \ - slogf(42, _SLOG_DEBUG2, "%s:%d:\t%s\tdebug: " FMT, __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__); \ -} while( 0 ) -#endif -#ifdef BUILDOS_LINUX -#define ERROR(FMT, ...) do { \ - printf("%s:%d:\t%s\t Error: "FMT,__FILE__, __LINE__,__FUNCTION__ ,##__VA_ARGS__); \ -}while( 0 ) -#define DEBUG(FMT, ...) do { \ - printf("%s:%d:\t%s\t Debug: "FMT,__FILE__, __LINE__,__FUNCTION__ ,##__VA_ARGS__); \ +#elif defined BUILDOS_LINUX +#define TRACE(lvl,FMT, ...) do if ((lvl) <= dce_debug) { \ + printf("%s:%d:\t%s\t Error: "FMT,__FILE__, __LINE__,__FUNCTION__ ,##__VA_ARGS__); \ }while( 0 ) #endif diff --git a/libdce.c b/libdce.c index 3bbed45..b781972 100644 --- a/libdce.c +++ b/libdce.c @@ -86,7 +86,7 @@ MmRpc_Handle MmRpcHandle = NULL; sem_t *dce_semaphore = NULL; static int count = 0; - +int dce_debug = DCE_DEBUG_LEVEL; /****************** INLINE FUNCTIONS ********************/ -- 2.39.2