From: arighi Date: Tue, 15 Mar 2011 16:59:27 +0000 (+0000) Subject: Allow selectively disabling debug features to reduce code/data size X-Git-Tag: 2.7.0~192 X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;h=e181d2c6e13101cbe778d3ba4bb025ecafe1fab9;p=bertos.git Allow selectively disabling debug features to reduce code/data size Kdebug already contained preprocessor symbols for turning off ASSERT2() messages and trace, but it was not possible to override them from cfg_debug.h. This patch renames the old options to use positive logic and add a third option to enable walls. The defaults remain unchanged. TODO: add these settings to cfg/cfg_debug.h, along with some documentation. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4774 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/bertos/cfg/debug.h b/bertos/cfg/debug.h index efa26e18..ef6717c5 100644 --- a/bertos/cfg/debug.h +++ b/bertos/cfg/debug.h @@ -55,16 +55,21 @@ #include #include +#include "cfg/cfg_debug.h" /* CONFIG_KDEBUG_* */ /* * Defaults for rarely used config stuff. */ -#ifndef CONFIG_KDEBUG_DISABLE_TRACE -#define CONFIG_KDEBUG_DISABLE_TRACE 0 +#ifndef CONFIG_KDEBUG_TRACE +#define CONFIG_KDEBUG_TRACE 1 #endif -#ifndef CONFIG_KDEBUG_ASSERT_NO_TEXT -#define CONFIG_KDEBUG_ASSERT_NO_TEXT 0 +#ifndef CONFIG_KDEBUG_VERBOSE_ASSERT +#define CONFIG_KDEBUG_VERBOSE_ASSERT 1 +#endif + +#ifndef CONFIG_KDEBUG_WALLS +#define CONFIG_KDEBUG_WALLS 1 #endif #if defined(__doxygen__) @@ -127,7 +132,6 @@ */ #define DB(x) x - #include "cfg/cfg_debug.h" /* CONFIG_KDEBUG_ASSERT_NO_TEXT */ #include /* CPU_HARVARD */ /* These are implemented in drv/kdebug.c */ @@ -163,7 +167,7 @@ int __check_wall(long *wall, int size, const char *name, const char *file, int line); #endif /* !CPU_HARVARD */ - #if !CONFIG_KDEBUG_ASSERT_NO_TEXT + #if CONFIG_KDEBUG_VERBOSE_ASSERT /** * Assert a pre-condition on code. */ @@ -203,7 +207,7 @@ || ((void *)(p) >= (void *)CPU_RAM_START)) \ ? 0 : __invalid_ptr((p), #p, THIS_FILE, __LINE__))) - #if !CONFIG_KDEBUG_DISABLE_TRACE + #if CONFIG_KDEBUG_TRACE #define TRACE __trace(__func__) #define TRACEMSG(msg,...) __tracemsg(__func__, msg, ## __VA_ARGS__) #else @@ -211,19 +215,6 @@ #define TRACEMSG(...) do {} while(0) #endif - - /** - * \name Walls to detect data corruption - * \{ - */ - #define WALL_SIZE 8 - #define WALL_VALUE (long)0xABADCAFEL - #define DECLARE_WALL(name,size) long name[(size) / sizeof(long)]; - #define FWD_DECLARE_WALL(name,size) extern long name[(size) / sizeof(long)]; - #define INIT_WALL(name) __init_wall((name), countof(name)) - #define CHECK_WALL(name) __check_wall((name), countof(name), #name, THIS_FILE, __LINE__) - /*\}*/ - /** * Check that the given pointer actually points to an object * of the specified type. @@ -308,11 +299,6 @@ } #endif - #define DECLARE_WALL(name, size) /* nothing */ - #define FWD_DECLARE_WALL(name, size) /* nothing */ - #define INIT_WALL(name) do {} while (0) - #define CHECK_WALL(name) do {} while (0) - #define NEW_INSTANCE(CLASS) do {} while (0) #define DELETE_INSTANCE(CLASS) do {} while (0) #define ASSERT_ZERO_INSTANCES(CLASS) do {} while (0) @@ -336,6 +322,25 @@ #endif /* _DEBUG */ +#if CONFIG_KDEBUG_WALLS + /** + * \name Walls to detect data corruption + * \{ + */ + #define WALL_SIZE 8 + #define WALL_VALUE (long)0xABADCAFEL + #define DECLARE_WALL(name,size) long name[(size) / sizeof(long)]; + #define FWD_DECLARE_WALL(name,size) extern long name[(size) / sizeof(long)]; + #define INIT_WALL(name) __init_wall((name), countof(name)) + #define CHECK_WALL(name) __check_wall((name), countof(name), #name, THIS_FILE, __LINE__) + /*\}*/ +#else + #define DECLARE_WALL(name, size) /* nothing */ + #define FWD_DECLARE_WALL(name, size) /* nothing */ + #define INIT_WALL(name) do {} while (0) + #define CHECK_WALL(name) do {} while (0) +#endif + /** \} */ // defgroup debug #endif /* BERTOS_DEBUG_H */