雖然有gdb和ide等除錯工具,但在程式設計和除錯的過程中,列印除錯資訊還是必不可少的——它方便、快捷,尤其是對於需要依賴關係錯綜複雜的大型工程,在關鍵的地方列印除錯資訊非常行之有效。不過除錯資訊打的多了,看著滿螢幕的小字實在眼暈——而且,在正式版本發布的時候,還需要一行一行地刪除這些除錯資訊,實在是個苦力活兒。於是,這兩天寫了乙個列印帶顏色的除錯資訊的工具,可以列印出各種各樣顏色的資訊,這樣除錯的時候看起來就方便多了,重要的資訊可以一目了然。同時,這個工具和assert類似,只有在debug模式編譯的時候才生效,在release模式編譯時相當於一條空語句,這樣就省去了刪除/注釋這些除錯資訊的功夫。
這個debug工具的**如下:
/*
* * debug_info.h
* * created on: 2012-10-17
* author: [email protected]
* description: this is used to print colorful debug infos to help
* us with debugging.
*/#ifndef ecom_base_debug_info_h_
#define ecom_base_debug_info_h_
#define none "\033[m"
#define red "\033[0;31m"
#define light_red "\033[1;31m"
#define green "\033[0;32;32m"
#define light_green "\033[1;32m"
#define blue "\033[0;32;34m"
#define light_blue "\033[1;34m"
#define dary_gray "\033[1;30m"
#define cyan "\033[0;36m"
#define light_cyan "\033[1;36m"
#define purple "\033[0;35m"
#define light_purple "\033[1;35m"
#define brown "\033[0;33m"
#define yellow "\033[0;33m"
#define light_yellow "\033[1;33m"
#define light_gray "\033[0;37m"
#define white "\033[1;37m"
#define colorful_print(color, fmt, arg...) \
do while(0)
#define print_red(fmt, arg...) \
colorful_print(red, fmt, ##arg)
#define print_lred(fmt, arg...) \
clorful_print(light_red, fmt, ##arg)
#define print_green(fmt, arg...) \
clorful_print(green, fmt, ##arg)
#define print_lgreen(fmt, arg...) \
clorful_print(light_green, fmt, ##arg)
#define print_blue(fmt, arg...) \
clorful_print(blue, fmt, ##arg)
#define print_lblue(fmt, arg...) \
clorful_print(light_blue, fmt, ##arg)
#define print_gray(fmt, arg...) \
clorful_print(dary_gray, fmt, ##arg)
#define print_lgray(fmt, arg...) \
colorful_print(light_gray, fmt, ##arg)
#define print_cyan(fmt, arg...) \
clorful_print(cyan, fmt, ##arg)
#define print_lcyan(fmt, arg...) \
clorful_print(light_cyan, fmt, ##arg)
#define print_purple(fmt, arg...) \
clorful_print(purple, fmt, ##arg)
#define print_lpurple(fmt, arg...) \
clorful_print(light_purple, fmt, ##arg)
#define print_brown(fmt, arg...) \
clorful_print(brown, fmt, ##arg)
#define print_yellow(fmt, arg...) \
clorful_print(yellow, fmt, ##arg)
#define print_lyellow(fmt, arg...) \
clorful_print(light_yellow, fmt, ##arg)
#define print_white(fmt, arg...) \
clorful_print(white, fmt, ##arg)
#ifdef ndebug
#ifdef debug_message
#undef debug_message
#endif
#define debug_message(color, fmt, arg...) ((void)(0))
#else
#ifdef debug_message
#undef debug_message
#endif
#define debug_message(color, fmt, arg...) \
do while(0)
#endif
#ifdef debug_error
#undef debug_error
#endif
#ifdef debug_warning
#undef debug_warning
#endif
#ifdef debug_info
#undef debug_info
#endif
#define debug_error(fmt, arg...) debug_message(red, fmt, ##arg)
#define debug_warning(fmt, arg...) debug_message(yellow, fmt, ##arg)
#define debug_info(fmt, arg...) debug_message(none, fmt, ##arg)
#endif // ecom_base_debug_info_h_
乙個簡單的例子及執行結果:
#include "debug_info.h"
#include #include //#include int main()
執行結果: 列印出帶顏色的除錯資訊
接上篇 if 1 define debug out fmt,args,printf 033 40 31m file s func s line d 033 0m n file func line else deine debug out fmt,args,void 0 endif 列印顏色的格式為 ...
python列印帶顏色的字型
在python開發的過程中,經常會遇到需要列印各種資訊。海量的資訊堆砌在控制台中,就會導致資訊都混在一起,降低了重要資訊的可讀性。這時候,如果能給重要的資訊加上字型顏色,那麼就會更加方便使用者閱讀了。當然了,控制台的展示效果有限,並不能像前段一樣炫酷,只能做一些簡單的設定。不過站在可讀性的角度來看,...
python列印帶顏色的字型
在python開發的過程中,經常會遇到需要列印各種資訊。海量的資訊堆砌在控制台中,就會導致資訊都混在一起,降低了重要資訊的可讀性。這時候,如果能給重要的資訊加上字型顏色,那麼就會更加方便使用者閱讀了。當然了,控制台的展示效果有限,並不能像前段一樣炫酷,只能做一些簡單的設定。不過站在可讀性的角度來看,...