picox
0.1
|
デバッグログやassert等の定義 [詳解]
マクロ定義 | |
log_levels | |
ログの色付けのグループです ANSIカラー でログヘッダに色付けをし、ログレベルを視覚的に見やすくします。 | |
#define | X_LOG_LEVEL_ERR (1) /* error */ |
#define | X_LOG_LEVEL_WARN (2) /* warning */ |
#define | X_LOG_LEVEL_NOTI (3) /* notice */ |
#define | X_LOG_LEVEL_INFO (4) /* infomation */ |
#define | X_LOG_LEVEL_VERB (5) /* verbose */ |
#define | X_LOG_LEVEL X_CONF_LOG_LEVEL |
#define | X_ANSI_COLOR_BLACK "\x1b[1;30m" |
#define | X_ANSI_COLOR_RED "\x1b[1;31m" |
#define | X_ANSI_COLOR_GREEN "\x1b[1;32m" |
#define | X_ANSI_COLOR_YELLOW "\x1b[1;33m" |
#define | X_ANSI_COLOR_BLUE "\x1b[1;34m" |
#define | X_ANSI_COLOR_MAGENTA "\x1b[1;35m" |
#define | X_ANSI_COLOR_CYAN "\x1b[1;36m" |
#define | X_ANSI_COLOR_WHITE "\x1b[1;37m" |
#define | X_ANSI_COLOR_RESET "\x1b[0m" |
#define | X_COLOR_BLACK |
#define | X_COLOR_RED |
#define | X_COLOR_GREEN |
#define | X_COLOR_YELLOW |
#define | X_COLOR_BLUE |
#define | X_COLOR_MAGENTA |
#define | X_COLOR_CYAN |
#define | X_COLOR_WHITE |
#define | X_COLOR_RESET |
log_macros | |
ログ出力マクロのグループです X_LOG_XXX()は、printfライクなformat引数を受け付けますが、 X_LOG_XXX((tag, "i = %d",i));という風に、引数を2重で()する必要があります。 C99の可変長引数マクロを使えばこんな変な書き方をしないですむのですが、 このライブラリの対象にはC++03も含めており、C++03では可変長引数マクロは標準機 能ではありません。 たいていのコンパイラでは、標準ではなくとも可変長引数マクロをサポートしていま すが、規格に厳格なコンパイラでは使用できません。(例 Renesas C++ compiler) | |
#define | X_LOG_VERB(args) (void)0 |
#define | X_LOG_HEXDUMP_VERB(args) (void)0 |
#define | X_LOG_INFO(args) (void)0 |
#define | X_LOG_HEXDUMP_INFO(args) (void)0 |
#define | X_LOG_NOTI(args) (void)0 |
#define | X_LOG_HEXDUMP_NOTI(args) (void)0 |
#define | X_LOG_WARN(args) (void)0 |
#define | X_LOG_HEXDUMP_WARN(args) (void)0 |
#define | X_LOG_ERR(args) (void)0 |
#define | X_LOG_HEXDUMP_ERR(args) (void)0 |
assertions | |
assertマクロのグループです | |
#define | X_DEFAULT_ASSERT(expr) X_DEFAULT_ASSERT_MSG(expr, NULL) |
picoxデフォルトのアサートです | |
#define | X_DEFAULT_ASSERT_MSG(expr, msg) ((expr) ? (void)0 : x_assertion_failed(#expr, msg, X_FUNC, __FILE__, __LINE__)) |
追加メッセージを指定可能なアサートです | |
#define | X_ASSERT(expr) X_DEFAULT_ASSERT(expr) |
#define | X_ASSERT_MSG(expr, msg) X_DEFAULT_ASSERT_MSG(expr, msg) |
#define | X_ASSERT_SELF(expr) (void)0 |
クラス指向モジュールの第一引数のNULLチェック用アサートです | |
#define | X_ASSERT_ARG(expr) (void)0 |
引数の範囲チェック等のためのアサートです | |
#define | X_ASSERT_NULL(expr) (void)0 |
引数のNULLチェック用のアサートです | |
#define | X_ASSERT_TAG(expr) (void)0 |
規定のタグがセットされているかの検査用アサートです | |
#define | X_ASSERT_ENUM(expr) (void)0 |
不正な列挙値が指定されていないかの検査用アサートです | |
#define | X_ASSERT_MALLOC_NULL(expr) (void)0 |
動的メモリ確保のNULL検査用アサートです | |
#define | X_ABORT(msg) X_ASSERT_MSG(0, msg) |
プログラムの実行を強制停止します | |
#define | X_ABORT_DEFAULT default: X_ABORT("Runtime error"); break |
switch文でdefaultの時にX_ABORT()を呼び出します | |
#define | X_EXIT(return_code) X_ABORT("exit:" #return_code) |
プログラムの実行を強制停止します | |
log_headers | |
ログヘッダ文字列のグループです | |
#define | X_VERB_COLOR "" |
#define | X_INFO_COLOR X_COLOR_GREEN |
#define | X_NOTI_COLOR X_COLOR_MAGENTA |
#define | X_WARN_COLOR X_COLOR_YELLOW |
#define | X_ERR_COLOR X_COLOR_RED |
#define | X_VERB_HEADER X_VERB_COLOR X_CONF_VERB_HEADER X_COLOR_RESET |
#define | X_INFO_HEADER X_INFO_COLOR X_CONF_INFO_HEADER X_COLOR_RESET |
#define | X_NOTI_HEADER X_NOTI_COLOR X_CONF_NOTI_HEADER X_COLOR_RESET |
#define | X_WARN_HEADER X_WARN_COLOR X_CONF_WARN_HEADER X_COLOR_RESET |
#define | X_ERR_HEADER X_ERR_COLOR X_CONF_ERR_HEADER X_COLOR_RESET |
型定義 | |
typedef void(* | XAssertionFailedFunc) (const char *expr, const char *msg, const char *func, const char *file, int line) |
アサーションに失敗した時に呼び出される関数のポインタ型です [詳解] | |
変数 | |
XAssertionFailedFunc | x_assertion_failed |
アサーション失敗時に呼びされる関数のポインタです [詳解] | |
XAssertionFailedFunc | x_post_assertion_failed |
x_assertion_failedの呼び出し後に呼びされる関数のポインタです [詳解] | |
XAssertionFailedFunc | x_pre_assertion_failed |
x_assertion_failedの呼び出し前に呼びされる関数のポインタです [詳解] | |
デバッグログやassert等の定義