C C 列印帶顏色的除錯資訊

2021-06-10 08:49:31 字數 3619 閱讀 7550

雖然有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開發的過程中,經常會遇到需要列印各種資訊。海量的資訊堆砌在控制台中,就會導致資訊都混在一起,降低了重要資訊的可讀性。這時候,如果能給重要的資訊加上字型顏色,那麼就會更加方便使用者閱讀了。當然了,控制台的展示效果有限,並不能像前段一樣炫酷,只能做一些簡單的設定。不過站在可讀性的角度來看,...